将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一样太过分了,并且有一大堆与之相关的问题。