我有2個控制器:第一個顯示所有記錄在數據庫中,第二個允許添加新記錄。他們都與NavigationController連接。如果我要添加新記錄並按下「返回」按鈕,第一個控制器將不顯示新數據(因爲NavigationController,我猜)。 所以,我試着把tableView.reloadData()
放在viewDidAppear()
。它不會幫助。然後我試着用NSNotificationCenter(method from this thread)重新載入tableView,但它仍然沒有顯示新的數據。 這裏是我的代碼:無法重新加載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
@UlyssesR它沒有調用。我可以通過通知在控制檯中打印一些東西,但它不想使用我的表格 – dsk1306
您是否設置了tableview的委託? –