1
我想我在这里有一些简单的错误。 我想通过AppDelegate的managedObjectContext到两个视图控制器。 只为这个学习演示,两个ViewControllers是紧挨着的。 (在我的真正的应用程序,他们将相隔很远。)传递托管对象上下文从AppDelegate查看控制器
这工作:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
Page1ViewController * page1VC = [[navigationController viewControllers] objectAtIndex:0];
page1VC.managedObjectContext = self.managedObjectContext;
return YES;
}
但是当我添加第二个视图控制器 - objectAtIndex:1,这不:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
Page1ViewController * page1VC = [[navigationController viewControllers] objectAtIndex:0];
page1VC.managedObjectContext = self.managedObjectContext;
Page2ViewController *page2VC = [[navigationController viewControllers] objectAtIndex:1];
page2VC.managedObjectContext = self.managedObjectContext;
return YES;
}
我得到这个错误:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
我相信它接近正确!?如果有人能帮忙,我会很感激。 (顺便说一下,我将使用segues来传递managedObjectContext!)
感谢您的回应。但是,你知道为什么第一个可以工作吗(即objectAtIndex:0)?我还在这里发现了这个技巧:http://timroadley.com/2012/02/19/core-data-basics-part-4-relationships/它暗示它应该工作。 :| –
第一个工作正常,因为导航控制器有一个控制器,正在显示。 – EmilioPelaez
这很有道理,谢谢Emilio。 –