【发布时间】:2011-03-03 18:18:05
【问题描述】:
我有一个简单的 iOS 应用程序,在 UINavigationController 下有一个 UIViewController。 UIViewController 有一个用于 NSManagedObjectContext 的 IBOutlet。
AppDelegate 有一个用于导航控制器的 IBOutlet,但没有用于视图控制器。视图控制器在 XIB 进程中自动实例化(作为导航控制器的子进程)。
使用此设置,如何干净地将应用程序委托的 NSManagedObjectContext 分配或传递给视图控制器的 IBOutlet 属性。有一个导航控制器 :) 并且应用程序委托没有 UIViewController 的直接属性。
这是一个奇怪的问题,我想将一个 XIB 组件的属性链接到另一个组件的属性。我所做的大部分 XIB 工作都需要一个属性并将其指向 XIB 中的一个对象,而该对象又会在正常过程中被实例化,但在这种情况下,上下文是在应用程序委托中正确创建的,我只是想要在实例化它时将其传递给视图控制器。
【问题讨论】:
-
我认为还值得考虑一个有 9 个视图控制器的应用程序 - 在不同的时间使用 - 所有这些都需要访问托管上下文。在某些情况下,视图 A 和视图 C 需要上下文,而视图 B 不需要。在实例化时将其简单地传递给每个视图控制器的幼稚方法似乎很混乱。这是否意味着 view-A 使用上下文创建 view-B(即使 view-B 不需要它),以便 view-B 可以创建 view-C 并传递它?我发现这让我的愚蠢视图控制器太聪明了,而且应用程序不够灵活。
标签: iphone ios uiviewcontroller xib nsmanagedobjectcontext