【发布时间】:2016-05-07 19:35:43
【问题描述】:
我正在使用 UIPreviewAction 从 Core Data 数据源中删除一个项目。 Peek 操作是从使用相同数据源的 UITableView 上的单元格启动的。
我的问题是,由于 UIPreviewAction 的代码是窥视视图控制器代码的一部分,我应该如何向原始 UITableViewController 发出信号,告知它应该重新加载其数据源?
【问题讨论】:
我正在使用 UIPreviewAction 从 Core Data 数据源中删除一个项目。 Peek 操作是从使用相同数据源的 UITableView 上的单元格启动的。
我的问题是,由于 UIPreviewAction 的代码是窥视视图控制器代码的一部分,我应该如何向原始 UITableViewController 发出信号,告知它应该重新加载其数据源?
【问题讨论】:
这可以通过多种方式完成,您可以像这样使用通知中心:
在您要删除的地方使用此代码触发通知
NSNotificationCenter.defaultCenter().postNotification(NSNotification(name: "reloadTable", object: nil))
receiver action 将在你的控制器中 table view 存在的地方。在 viewdidload 中写下这一行,不要忘记在 deinit 函数中删除观察者
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.reloadTable), name: "reloadTable", object: nil)
最后是函数
func reloadTable() {
tableView.reloadData()
}
【讨论】:
使用委托在原始 UITableViewController 上调用删除方法。
【讨论】: