0

在此处输入图像描述

要在我的主视图控制器中传递对 managedObjectContext 的引用,我的 App 委托中有以下代码,并且工作正常:

//Grab the Navigation Controller in front of the Main View Controller
UINavigationController *nav = (UINavigationController *)self.window.rootViewController;

//Grab Main View Controller out of the navigation controller at Position 0
SceneTwo *sceneTwo = (SceneTwo *) [[nav viewContollers]objectAtIndex:0];

//Pass the reference to managedObjectContext.  
sceneTwo.managedObjectContext = self.managedObjectContext;

问题:我想在主视图控制器(场景 1)内的 ContainerView 中传递对 managedObjectContext 的引用,该控制器前面有一个导航控制器。请看上图。

获取containerView的导航控制器的代码应该是什么?从导航控制器中获取场景 1 的代码应该是什么?

谢谢。

4

1 回答 1

0

因为您的主视图控制器使用容器视图,所以您可以在主视图控制器中遍历childViewControllers数组中的视图。查看图表,看起来第一个应该是您所追求的导航控制器。下面可以进去MainViewController

UINavigationController *scene1Nav = (UINavigationController *)[[self childViewControllers] objectAtIndex:0];

当你找到正确的,你就可以设置managedObjectContext它。

另一种选择(可能比遍历所有子视图和导航控制器更痛苦)可能是managedObjectContext在场景本身中设置您的场景,并引用应用程序委托 - 例如,在viewDidLoad需要上下文的控制器中. 为此,managedObjectContext需要成为您的 App Delegate 的属性或 getter 方法。

self.managedObjectContext = [(YourAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
于 2013-02-07T03:40:49.723 回答