繁体   English   中英

无法重新加载TableView

[英]Can't reload TableView

我有2个控制器:第一个显示db中的所有记录,第二个允许添加新记录。 他们两个都与NavigationController连接。 如果我将添加新记录并按“返回”按钮,则第一个控制器将不会显示新数据(我想是因为NavigationController)。 因此,我尝试将tableView.reloadData()放入viewDidAppear() 这不会有帮助。 然后,我尝试使用NSNotificationCenter( 此线程中的方法 )重新加载tableView,但是它仍然不显示新数据。 这是我的代码:

func saveRecord() {
   //Creating cloud record
   let container = CKContainer.defaultContainer()
   let privateDatabase = container.privateCloudDatabase
   privateDatabase.saveRecord(cloudRecord, completionHandler: { (record, error) -> Void in
      if (error != nil) {
         print(error)
      }
      NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
         //creating core data record
         do {
            try managedContext.save()
         } catch let error as NSError {
            print("Could not save \(error), \(error.userInfo)")
         }
         NSNotificationCenter.defaultCenter().postNotificationName("reloadHistoryController", object: nil)
      })
   })
}

override func viewDidLoad() {
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadHistoryController:", name:"reloadHistoryController", object: nil)
}

func reloadHistoryController(notification: NSNotification){
    self.tableView.reloadData()
}

更新资料

dispatch_async(dispatch_get_main_queue(),{
        self.tableView.reloadData()
})

也没有帮助我。

请检查您的号码。 两次的行计数是相同的,即当您加载firstviewcontroller以及保存新记录并按back按钮后。 我认为保存数据的数组未使用添加的新数据初始化。 请尝试在viewWillAppear()方法中初始化数组数据,然后重新加载表视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM