少し混乱しています...
self.window.rootViewController
のインスタンスを返す必要がありますがUITabBarController
、これは応答しないため、setManagedObjectContext:
クラッシュするはずです。
これを念頭に置いて、あなたはそれをする必要があります
- tabBarController を取得する
- tabBarController が管理する viewController を循環します
それらに managedObjectContext を渡します
for (id viewController in self.window.rootViewController.viewControllers) {
[viewController setManagedObjectContext:self.managedObjectContext];
}
編集
ざっと見てきました。
- サブクラス
UITabBarController
化する必要はめったになく、この場合は本当に必要ありません。あなたがしたいことはmanagedObjectContext
、tabBarController の各 viewControllers を取得することです。tabBarController 自体はそれについて知る必要があります。
私はあなたapplication:didFinishLaunchingWithOptions:
を次のように変更しましたが、それは想定どおりに機能しました
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UITabBarController *tabBarController = (id)self.window.rootViewController;
for (id viewController in tabBarController.viewControllers) {
[viewController setManagedObjectContext:self.managedObjectContext];
}
}