【问题标题】:Can't reload TableView无法重新加载 TableView
【发布时间】:2016-06-19 04:40:08
【问题描述】:

我有 2 个控制器:第一个是显示数据库中的所有记录,第二个是允许添加新记录。它们都与 NavigationController 连接。如果我要添加新记录并按“返回”按钮,第一个控制器将不会显示新数据(我猜是因为 NavigationController)。 所以,我尝试将tableView.reloadData() 放入viewDidAppear()。它不会有帮助。然后我尝试使用 NSNotificationCenter (method from this thread) 重新加载 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()
})

对我也没有帮助。

【问题讨论】:

  • 函数 cellForRowAtIndexPath 上的断点,并在更新 tableView 时查看何时/是否调用它。
  • @UlyssesR 它没有打电话。我可以通过通知在控制台中打印一些东西,但它根本不想与我的表一起工作
  • 你设置了tableview的委托吗?
  • @UlyssesR 我也有另一个具有不同名称和选择器的通知,但其中包含一些功能并且可以正常工作
  • @MGP 它是用故事板(TableViewController)创建的,所有代表看起来都不错

标签: ios swift uitableview cloudkit


【解决方案1】:

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

【讨论】:

  • 帮了大忙,非常感谢。我已将我的 CoreData fetchRequest 代码放入选择器 func 中,现在一切正常。
  • @dsk1306 很乐意为您提供帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多