将managedObjectContext传递给UITabBarController的视图

时间:2010-10-19 17:22:09

标签: iphone core-data ios uitabbarcontroller nsmanagedobjectcontext

我有一个基于实用程序模板的应用程序(您可以在其中翻转视图以查看另一个)。在第一个视图中有一个登录屏幕,然后翻转以显示UITabBar样式界面。

我无法弄清楚如何将adminObjectContext从App Delegate(创建它)一直传递到每​​个Tab Bar的视图。

App Delegate的managedObjectContext 传递给 FrontLoginViewController ,传递给 BackViewTabBarViewController ..下一步在哪里?

BackViewTabBarViewController nib有一个UITabBarController,每个选项卡都有一个UINavigationController。

2 个答案:

答案 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委托中获取共享对象。它使得它的行为太像一个全局变量,并且它有一大堆与之相关的问题。 “