我有一个基于实用程序模板的应用程序(您可以在其中翻转视图以查看另一个)。在第一个视图中有一个登录屏幕,然后翻转以显示UITabBar样式界面。
我无法弄清楚如何将adminObjectContext从App Delegate(创建它)一直传递到每个Tab Bar的视图。
App Delegate的managedObjectContext 传递给 FrontLoginViewController ,传递给 BackViewTabBarViewController ..下一步在哪里?
BackViewTabBarViewController nib有一个UITabBarController,每个选项卡都有一个UINavigationController。
答案 0 :(得分:11)
听起来像在AppDelegate中定义了managedObjectContext。如果是,那么......
从你想要的任何viewController ......只需调用
MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];
然后使用......
appDelegate.managedObjectContext
每当需要managedObjectContext时。将MyApplicationDelegate更改为AppDelegate,你应该好好去。
答案 1 :(得分:2)
我遇到了同样的问题,我会分享我的解决方案。
首先,你需要在nib文件的Tab栏中引用Nav Controller,确保你连接它。
IBOutlet UINavigationController *navigationController;
然后,按照支持文档中的建议获取Controller,并将其发送到managedObjectContext:
SavedTableViewController *saved = (SavedTableViewController *)[navigationController topViewController];
saved.managedObjectContext = self.managedObjectContext;
Alex(来自另一篇文章)是对的,“你通常应该避免从app委托中获取共享对象。它使得它的行为太像一个全局变量,并且它有一大堆与之相关的问题。 “