В моем случае у меня есть rootViewController, а затем у меня есть TabBarController, поэтому при подготовке tabBarController я установил его делегат:
if ([[segue identifier]isEqualToString:@"initialTabBar"])
[(UITabBarController *)[segue destinationViewController] setDelegate:self];
} `
Я добавляю протокол к tabBarDelegate в моем RootViewController (я назвал MainViewController):
@interface MainViewController ()<UITabBarControllerDelegate>
И, наконец, в методе делегата:
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
Я установил свойство, но ранее я убедился, что viewcontroller имеет правильное свойство:
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
if ([viewController respondsToSelector:@selector(managedContextObject)]) {
[viewController setValue:self.managedObjectContext forKey:@"managedContextObject"];
}
}
Таким образом, если на какой-либо вкладке viewController не используется managedContextObject, я просто не создаю свойство в его .h
Надеюсь, это будет полезно.