添加项目后更新 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 不更新高度