无法重新加载 TableView
Can't reload TableView
我有 2 个控制器:第一个是显示数据库中的所有记录,第二个允许添加新记录。它们都与 NavigationController 相连。如果我要添加新记录并按 "Back" 按钮,第一个控制器将不会显示新数据(我猜是因为 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()
})
对我也没有帮助。
请检查您的号码。两次的行数都是相同的,即当您加载 firstviewcontroller 和保存新记录并按下后退按钮时。我认为您保存数据的数组未使用您添加的新数据进行初始化。请尝试在 viewWillAppear() 方法中初始化您的数组数据,然后重新加载您的表格视图。
我有 2 个控制器:第一个是显示数据库中的所有记录,第二个允许添加新记录。它们都与 NavigationController 相连。如果我要添加新记录并按 "Back" 按钮,第一个控制器将不会显示新数据(我猜是因为 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()
})
对我也没有帮助。
请检查您的号码。两次的行数都是相同的,即当您加载 firstviewcontroller 和保存新记录并按下后退按钮时。我认为您保存数据的数组未使用您添加的新数据进行初始化。请尝试在 viewWillAppear() 方法中初始化您的数组数据,然后重新加载您的表格视图。