1

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

在此处输入图像描述 本教程称为 segue。但我想使用 presentModalViewController。它可以工作,除了我想知道如何将 managedObjectContext 传递给标签栏控制器内导航控件内的视图。

我阅读了这个Passing ManagedObjectContext 以使用带有根 UITabBarController 的情节提要来查看控制器,但是第二个答案下的评论说这不是正确的方法。

有人可以告诉我正确的方法吗?我想知道如何在标签栏控制器中获取对视图的引用,以便我可以为该视图设置 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;
}
4

1 回答 1

2

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

像这样的东西。

MainTabBar *parentTabBarController = (MyTabBar *)self.tabBarController;
self.managedObjectContext = parentTabBarController.managedObjectContext;
于 2013-05-09T16:59:00.763 回答