我有一个iPad Storyboard驱动的应用程序,它使用拆分视图来显示主视图和详细视图。
DetailViewController有一个子UITableViewController,它在DetailViewController中填充原型UITableView。 UITableViewController使用NSFetchedResultsController来管理数据检索,以方便将数据与UITableView一起使用。
MasterViewController包含另一个UITableView,其中包含UITableViewController中包含的数据子集。
我遇到的问题是我需要MasterViewController能够从NSFetchedResultsController记录集更新它的内容,但是发现我不能为此目的使用委托,因为UITableViewController是DetailViewController的子节点,这是MasterViewController的一个孩子。
虽然我知道我可以使用NSNotificationCenter来执行此操作,但我希望我可以通过视图层次结构将相关数据传递回MasterViewController。我考虑将FRC中的数据加载到实例变量中并使用KVO触发DetailViewController上的委托方法,但这似乎很复杂。 这是目前设置的概述:
MasterViewController --> DetailViewController --> UITableViewController.NSFetchedResultsController
任何人都可以建议实现这一目标的最佳途径吗?
答案 0 :(得分:0)
我会使用另一个NSFetchedResultsController实例将数据提供给MasterViewController中的表视图。
答案 1 :(得分:0)
我使用NSNotification
和方法postNotificationName:object:userInfo:
解决了这个问题,将值的NSDictionary作为userInfo传递。
然后我设置我的MasterViewController来监听通知并处理NSDictionary以自我更新。
这保留在Apple设定的编程指南中,并允许我在我的应用程序中的任何位置传递相同的信息。
此处有更多详情:Notification Programming Topics