我正在学习使用iOS 5开发iPhone应用程序。
我正在尝试创建各种联系人列表(了解核心数据)。
我在UITableView
中嵌入了UINavigationController
(我通过编辑器完成了这项操作 - >嵌入 - >导航控制器)。
在saveContact
行动结束时,我有一句话:
[self.navigationController popViewControllerAnimated:YES];
从联系人创建表单移动到列出所有联系人的UITableView。获取联系人的代码位于viewWillAppear
。
问题是,当我弹出联系人创建表单时,新联系人不会显示在列表中。
我在Apple的文档中发现我应该将UINavigationControllerDelegate
添加到UITableViewController
,但没有成功。
有什么建议吗?
答案 0 :(得分:1)
您需要在UINavigationController
中实现UITableViewController
协议的navigationController:willShowViewController:animated:
方法,并将导航控制器的委托设置为表视图控制器。在您实现该方法时,检查将显示的视图是否与您的视图相同,如果是,则获取结果。
如果您真的想要将Core Data与表格视图集成,我建议您查看NSFetchedResultsController
。它简化了对后备数据存储的处理更新,因此如果您以后添加了后台同步功能,后台线程可以不断更新存储,然后NSFetchedResultsController可以为您处理更新表。它还可以使您当前的示例更容易,因为您只需将save:
发送到Core Data,然后结果控制器就会开始更新您的表,而不使用viewWillAppear:
方法