【发布时间】:2015-10-23 12:10:37
【问题描述】:
前言:我尝试将tableView.reloadData() 添加到未更新的viewWillAppear(...和viewDidLoad、viewDidAppear 等)。我也为 S 和 G 提供了 setNeedsDisplay。
我有一个UITabBarController,上面有 3 个标签。每个选项卡都是一个 TableViewController,由 Core Data 提供支持,并填充有来自一个 NSManagedObjectContext 的 NSManagedObjects。
在TableViewController1 中,我对单元格进行了更改,tableView 正确重新加载并反映了更改。如果我单击TableViewController2 的选项卡,则不会反映对TVC1 所做的更改。
TVC1 上所做的更改在启动之间仍然存在,当我关闭应用程序并重新启动它时,我在 TVC2 上看到它们。
我错过了什么?任何想法将不胜感激。
更新
这是有问题的代码:
func markFavorite(sender: AnyObject) {
// Store the sender in case you need it later. Might not need this.
clickedFavoriteButton = sender as! UIButton
if resultsSearchController.active {
let indexPath = sender.tag
let selectedSound = self.filteredSounds[indexPath]
print("markFavorite's sender tag is \(indexPath)")
if selectedSound.favorite == 1 {
selectedSound.favorite = 0
} else {
selectedSound.favorite = 1
}
saveManagedObjectContext()
} else {
let indexPath = sender.tag
let selectedSound = self.unfilteredSounds[indexPath]
print("markFavorite's sender tag is \(indexPath)")
if selectedSound.favorite == 1 {
selectedSound.favorite = 0
} else {
selectedSound.favorite = 1
}
saveManagedObjectContext()
}
}
func saveManagedObjectContext() {
if managedObjectContext.hasChanges {
do {
try self.managedObjectContext.save()
} catch {
// catch error here
}
}
self.tableView.reloadData()
}
【问题讨论】:
-
粘贴一些代码,以便在您的代码出现错误时帮助您
标签: ios swift uitableview core-data swift2