我一直在閱讀這個thread on Stackoverflow,並一直試圖在我自己的項目中複製解決方案而沒有成功。讓UITabBarController與核心數據一起工作
我的項目有4個選項卡。在我的應用程序委託我這樣做:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
Page1 *page1 = (Page1 *)[navController topViewController];
Page2 *page2 = (Page2 *)[navController topViewController];
Page3 *page3 = (Page3 *)[navController topViewController];
Page4 *page4 = (Page4 *)[navController topViewController];
page1.managedObjectContext = self.managedObjectContext;
page2.managedObjectContext = self.managedObjectContext;
page3.managedObjectContext = self.managedObjectContext;
page4.managedObjectContext = self.managedObjectContext;
[self.window makeKeyAndVisible];
return YES;
}
始發的線程,它說我需要創建一個IBOutlet中每個navController因爲我想使用的核心數據的每個選項卡。
雖然您可以爲UINavigationController分配多個代理,但對於插座也是如此,您只能爲navController提供一個插座。
我可以讓Page1工作,但其他網頁只是崩潰;因爲缺乏IBOutlet。
我是否真的需要X個IBOutlets for Y Tabs,或者我可以以另一種方式做到嗎?
的另一個問題是,起始線程接受的答案是:
理想情況下,你想傳遞要麼 的NSManagedObjectContext, NSFetchedResultsController或 相關NSManagedObject「下」到 的UIViewController中。
但是沒有代碼或者如何做到這一點的例子。
理想情況下,我不想使用singelton或在所有地方使用應用程序委託。
任何確認和澄清將是偉大的。
謝謝。
你好。謝謝您的回答。只是一些澄清。我是否認爲你需要爲每個標籤創建一個獨立的導航插口或控制器?至於appDelegate,我一直認爲使用這個核心數據是不好的做法。我會嘗試2個想法。 1.爲每個選項卡創建4個IBOutlets。 2.爲每個選項卡創建4個不同的導航控制器?或者我可以避免所有這些,只是使用你的想法使用appDelegate – zardon 2011-05-27 10:35:52
看來你是對的,讓每個選項卡中的appDelegate不僅更容易,而且不會丟失上下文。謝謝! – zardon 2011-05-30 20:23:41