3
我正在使用tab bar controller
與core data
一起使用。每個不同的標籤都需要訪問NSManagedObjectContext
,但我不想使用單例或將其從app delegate
上拉下來。當應用程序加載時,有沒有辦法將它們從app delegate
以編程方式傳遞給視圖控制器?如何使用故事板(iOS)時將NSManagedObjectContext傳遞給視圖控制器
我正在使用tab bar controller
與core data
一起使用。每個不同的標籤都需要訪問NSManagedObjectContext
,但我不想使用單例或將其從app delegate
上拉下來。當應用程序加載時,有沒有辦法將它們從app delegate
以編程方式傳遞給視圖控制器?如何使用故事板(iOS)時將NSManagedObjectContext傳遞給視圖控制器
如果在故事板中有基於選項卡的應用程序,則窗口的rootViewController將爲UITabBarController
。從那裏你可以得到製作你的標籤的viewControllers。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UIViewController *firstVC = tabBarController.viewControllers[0];
firstVC.managedObjectContext = self.managedObjectContext;
UIViewController *secondVC = tabBarController.viewControllers[1];
secondVC.managedObjectContext = self.managedObjectContext;
// more...
}
只需爲每個視圖控制器添加一個屬性'managedObjectContext',並在創建標籤欄控制器時設置該值,例如,在'didFinishLaunchingWithOptions'中。 –
謝謝 - 因爲我使用的是故事板,所以我不會手動創建VC。他們已經創建... –
好的,但如果你有一個標籤欄控制器的插座,那麼你可以訪問它的'viewControllers'併爲每個視圖控制器設置屬性。 - (我不確定這是否比從應用程序代表中拉出來更好) –