使用模态视图中的导航控制器将managedobjectContext传递给tabbarcontroller

时间:2013-05-09 15:51:15

标签: ios uitabbarcontroller managedobjectcontext

对于小型应用,我有一个登录屏幕。在Auth上,显示了一个带有两个视图的标签栏控制器(一个带有导航控制器)。我正在学习本教程。它使用核心数据。 http://maybelost.com/2011/12/tutorial-storyboard-app-with-core-data/

enter image description here 本教程称为segue。但我想使用presentModalViewController。它工作正常,除了我想知道如何将tabObjectContext传递给标签栏控制器内的导航控件内的View。

我读了这个Passing ManagedObjectContext to view controllers using storyboards with a root UITabBarController,但第二个回答的评论说这不是正确的方法。

有人可以告诉我正确的方法吗?我想知道如何获取对tabbar控制器内部视图的引用,以便我可以为该视图设置managedobjectcontext。

由于

修改 在appDelegate.h中:

@interface AppDelegate : UIResponder <UIApplicationDelegate>
   @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

我的appDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    LoginViewController *rootView = (LoginViewController *)self.window.rootViewController;
    rootView.managedObjectContext = self.managedObjectContext;
}

1 个答案:

答案 0 :(得分:2)

实际上我倾向于从您所在视图的tabBarController中获取上下文。例如,在标签栏视图的viewWillAppear中,只需创建一个self.tabBarController实例并将视图上下文设置为那个背景。这样你就可以将上下文传递给tabBar,每个视图都可以引用tabBar的上下文。

像这样。

MainTabBar *parentTabBarController = (MyTabBar *)self.tabBarController;
self.managedObjectContext = parentTabBarController.managedObjectContext;