2009-12-28 61 views
2

五天前我開始iPhone開發。通過接口生成器將NSManagedObjectContext傳遞給視圖

要學習一些技巧,我創建了一個基於視圖的演示應用程序。現在我想將Core Data集成到我的應用程序中,並運行到典型的mvc「問題」中:在視圖之間傳遞數據。我在這裏閱讀了幾條貼子(如this one),但如果有人希望您使用IB而不是手動將視圖控制器分配給父標籤頁/ navigationcontroller,它們不會覆蓋這種情況。

你可以在下面看到我的IB佈局。我想在我的AppDelegate中聲明一個NSManagedObjectContext並將其傳遞給每個SubViewController(如FriendsView或LocationView)。

這裏最好的做法是什麼?我無法使用任何自定義init方法,因爲viewcontroller是由nib文件創建的。

如果您需要更多信息或代碼,只需發表評論,我將盡快發佈。

謝謝, 的Henrik

截圖1
alt text http://dl.dropbox.com/u/357576/saves/IB/window.png

截圖2
alt text http://dl.dropbox.com/u/357576/saves/IB/viewcontroller_attr.png

回答

3

聲明我的應用程序委託的背景是做

的最好的事情你可以用

NSManagedObjectContext *context = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
+0

嗨Henrik。你的答案幫助我,但我真的很困惑在應用程序委託中聲明上下文。我對ios開發非常陌生。你能否編輯你的答案.. IT可能會幫助一些人只喜歡我。謝謝。 – GoCrazy 2012-09-17 11:41:26

+0

Heh Vino,如何訪問您應用程序委託在此處描述http://www.friendlydeveloper.com/2010/02/getting-appdelegate-access-from-anywhere-in-your-project-coding/ – 2012-09-17 13:48:22

+0

感謝您的提示響應。它的工作就像魅力現在。謝謝你乾杯.. + 1 – GoCrazy 2012-09-17 14:56:17

1

我懷疑LocationViewController是鹼IB對象。因此,您可以訪問LocationViewController.m文件並可以更改其init方法。

如果你不想搞砸init,你可以重寫viewDidLoad:以及。

希望這會有所幫助。

+0

事實上訪問它,LocationViewController是的UIViewController的自定義子類,但initWithNib調用時我定義我的SubViewController在我的筆尖(截圖2) – 2009-12-28 11:50:45

1

或使用- (void)awakeFromNib方法通過代碼更改數據。

相關問題