通过接口生成器将NSManagedObjectContext传递给视图

问题描述:

五天前我开始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

声明我的应用程序委托的背景是做

的最好的事情你可以用

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

我怀疑LocationViewController是碱IB对象。因此,您可以访问LocationViewController.m文件并可以更改其init方法。

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

希望这会有所帮助。

+0

事实*问它,LocationViewController是的UIViewController的自定义子类,但initWithNib调用时我定义我的SubViewController在我的笔尖(截图2) – 2009-12-28 11:50:45

或使用- (void)awakeFromNib方法通过代码更改数据。