添加项目后更新 TableViewController 的数据

Posted

技术标签:

【中文标题】添加项目后更新 TableViewController 的数据【英文标题】:Update the data of a TableViewController after add item 【发布时间】:2015-10-16 02:07:07 【问题描述】:

我有 tableView (A) 负责列出项目 CoreData 和 viewController (B) 来添加新项目。为了创建 ViewController (B) 自定义,他们选择使用以下 Present Modally 来使用演示 Over Current Context 来启用透明背景并能够应用模糊。

从 tableView (A) 中按下按钮添加一个新项目,viewController (B) 出现。 添加新项目并保存在 CoreData 中 viewController(B)执行self.dismissViewControllerAnimated(true, completion: nil),显示返回tableView(B)

问题是table view没有更新数据。

根据 Stack Overflow 上的帖子生成代码:

override func viewDidAppear(animated: Bool) 
    self.loadData()

但是在 viewController (B) 的后面,Xcode 中什么都没有发生没有通过viewDidAppear 的行。

谁能帮帮我?

【问题讨论】:

我在那里读过你的问题,但我仍然不明白你的问题。 您应该使用NSFetchedResultsController 来填充您的tableView。如果您使用它的委托方法(Apple 文档中有样板代码),它会在您添加新对象后立即自动更新电视。 @pbasdf 问题不在tableView中加载数据,是在后面一个sigue(ViewController给CoreData添加item) @James 是的。据我了解,您希望在 vc B 被关闭时更新 vc A 中的 tableView。但是如果你在vc A中使用NSFetchedResultsController,你不需要依赖viewDidAppear这样的生命周期方法来触发更新——FRC会为你做。 @pbasdf 您可以通过NSFetchedResultsController的使用示例发布答案? 【参考方案1】:

试试这个:

 override func viewDidAppear(animated: Bool)

    self.yourTableViewName.reloadData()

【讨论】:

以上是关于添加项目后更新 TableViewController 的数据的主要内容,如果未能解决你的问题,请参考以下文章

从另一个页面添加数据库(couchbase)中的项目后,如何从 angular.js 中的页面更新列表?

将视图添加到 UIStackView 后 UITableViewCell 不更新高度

同步更新Github上Fork的项目

我在选择选项上选择新项目后Useeffect不更新

MapItemView 在 dataChanged 信号后未更新

Unwind Segue 在 iOS 8 中不起作用