使用情节提要(iOS)时如何将 NSManagedObjectContext 传递给视图控制器
Posted
技术标签:
【中文标题】使用情节提要(iOS)时如何将 NSManagedObjectContext 传递给视图控制器【英文标题】:How to pass NSManagedObjectContext to view controllers when using storyboard (iOS) 【发布时间】:2013-08-04 11:16:14 【问题描述】:我将tab bar controller
与core data
结合使用。每个不同的选项卡都需要访问NSManagedObjectContext
,但是我不想使用单例或只是将它们从app delegate
中拉出来。有没有办法在应用加载时以编程方式将它们从app delegate
传递给视图控制器?
【问题讨论】:
只需在每个视图控制器中添加一个属性managedObjectContext
,并在创建标签栏控制器时设置该值,例如在didFinishLaunchingWithOptions
.
谢谢 - 因为我使用的是故事板,但我不会手动创建 VC。它们已经创建...
好的,但是如果你有一个标签栏控制器的出口,那么你可以访问它的viewControllers
并为每个视图控制器设置属性。 - (我不确定这是否比从应用程序委托中提取它们更好......)
【参考方案1】:
如果您在情节提要中有一个基于选项卡的应用程序,则窗口的 rootViewController 将是 UITabBarController
。从那里您可以获取构成选项卡的视图控制器。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UIViewController *firstVC = tabBarController.viewControllers[0];
firstVC.managedObjectContext = self.managedObjectContext;
UIViewController *secondVC = tabBarController.viewControllers[1];
secondVC.managedObjectContext = self.managedObjectContext;
// more...
【讨论】:
以上是关于使用情节提要(iOS)时如何将 NSManagedObjectContext 传递给视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
对于 iOS,我可以混合和匹配以编程方式添加视图并同时使用情节提要吗?
iOS 如何使用早期版本的 iOS 中不存在的情节提要元素?