【问题标题】:Update the data of a TableViewController after add item添加项目后更新 TableViewController 的数据
【发布时间】: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的使用示例发布答案?

标签: swift core-data tableview swift2 viewcontroller


【解决方案1】:

试试这个:

 override func viewDidAppear(animated: Bool)
{
    self.yourTableViewName.reloadData()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多