簡體   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