1

我有一个 iPad 故事板驱动的应用程序,它使用拆分视图来显示主视图和详细视图。

DetailViewController 有一个子 UITableViewController,它在 DetailViewController 中填充原型 UITableView。UITableViewController 使用 NSFetchedResultsController 来管理数据检索,以方便将数据与 UITableView 一起使用。

MasterViewController 包含另一个 UITableView,其中填充了 UITableViewController 中包含的数据子集。

我遇到的问题是我需要 MasterViewController 能够从 NSFetchedResultsController 记录集中更新它的内容,但发现我不能为此目的使用委托,因为 UITableViewController 是 DetailViewController 的子项,即MasterViewController 的一个孩子。

虽然我知道我可以使用 NSNotificationCenter 来执行此操作,但我希望我可以通过视图层次结构将相关数据传递回 MasterViewController。我曾考虑将 FRC 中的数据加载到实例变量中,并使用 KVO 触发 DetailViewController 上的委托方法,但这似乎很复杂。 这是目前设置的概述:

MasterViewController --> DetailViewController --> UITableViewController.NSFetchedResultsController

谁能建议实现这一目标的最佳方法?

4

2 回答 2

0

NSNotification我通过使用和 方法解决了这个问题postNotificationName:object:userInfo:,将值的 NSDictionary 作为 userInfo 传递。然后我将我的 MasterViewController 设置为侦听通知并处理 NSDictionary 以更新自身。

这符合 Apple 制定的编程指南,还允许我在我的应用程序的任何地方传递相同的信息。

更多细节在这里:通知编程主题

于 2012-07-09T09:08:05.827 回答
0

我将使用 NSFetchedResultsController 的另一个实例将数据提供给 MasterViewController 中的表视图。

于 2012-07-08T08:05:08.660 回答