Передача managedobjectContext в tabbarcontroller с контроллерами навигации в модальном представлении

Для небольшого приложения у меня есть экран входа в систему. На Auth представлен контроллер панели вкладок с двумя представлениями (один с контроллером навигации). Я следую этому уроку. Он использует основные данные. http://maybelost.com/2011/12/tutorial-storyboard-app-with-core-data/

введите описание изображения здесьУчебник называет Segue. Но я хотел бы использовать presentModalViewController. Это работает, за исключением того, что мне интересно, как передать managedObjectContext в View внутри Navigation Control внутри контроллера панели вкладок.

Я прочитал этот Passing ManagedObjectContext для просмотра контроллеров, используя раскадровки с корневым UITabBarController, но комментарии под вторым ответом говорят, что это неправильный метод.

Может кто-нибудь сказать мне правильный способ сделать это? Я ищу, чтобы узнать, как получить ссылку на представление внутри контроллера вкладок, чтобы я мог установить управляемый объектный текст для этого представления.

Спасибо

РЕДАКТИРОВАТЬ В 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 ответ

Решение

На самом деле я обычно собираю контекст из tabBarController того представления, в котором вы находитесь. Например, в вашем viewWillAppear из представления в панели вкладок просто создайте экземпляр self.tabBarController и установите для этого контекста представления свой контекст. Таким образом, вы можете просто передать контекст tabBar, и каждое представление может ссылаться на контекст этого tabBar.

Что-то вроде этого.

MainTabBar *parentTabBarController = (MyTabBar *)self.tabBarController;
self.managedObjectContext = parentTabBarController.managedObjectContext;
Другие вопросы по тегам