将managedObjectContext传递给UITabBarController的视图
我有一个应用程序是基于实用程序模板(您翻转视图看到另一个)。 在第一个视图中有一个login屏幕,然后翻转显示一个UITabBar风格的界面。
我无法解决如何从App Delegate(创build它的位置)一直到每个Tab Bar的视图传递managedObjectContext。
应用程序委托的managedObjectContext传递给FrontLoginViewController传递给BackViewTabBarViewController ..下一步?
BackViewTabBarViewController的笔尖有一个UITabBarController,每个标签有一个UINavigationController。
听起来像managedObjectContext是在你的AppDelegate中定义的。 如果是这样,那么…
从任何viewController你想…只是打电话
MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];
然后用…
appDelegate.managedObjectContext
只要你需要managedObjectContext。 改变MyApplicationDelegate到你的AppDelegate,你应该很好去。
我遇到了同样的问题,我会分享我的解决scheme。
首先,您需要在nib文件的选项卡栏中提供对导航控制器的引用,请确保将其连接起来。
IBOutlet UINavigationController *navigationController;
然后,按照支持文档中的build议获取Controller,并将其发送给managedObjectContext:
SavedTableViewController *saved = (SavedTableViewController *)[navigationController topViewController]; saved.managedObjectContext = self.managedObjectContext;
亚历克斯(来自另一篇文章)是正确的,“你通常应该远离从应用程序委托中获取共享对象,这使得它像一个全局variables一样太过分了,并且有一大堆与之相关的问题。