IBOutlet链接到embedded式视图控制器

我有一个复杂的iPad视图,我有几个视图控制器pipe理。 我以前(在iOS6 / XCode 4.5之前)通过在代码中分配我的视图控制器,并通过链接到主视图挂钩各种视图。

我想要做的是使用新的容器视图embedded视图控制器在故事板文件。 我似乎没有能够做一个IBOutlet链接到embedded式视图控制器到主控制器。

是否有可能做到这一点? 或者通过代码或代码检索embedded式控制器?

这个问题特别关于使用容器视图

我不确定你的意思是“检索embedded式控制器”。 当你想使用一个控制器时,你使用UIStoryboard方法instantiateViewControllerWithIdentifier:,使用你在IB给控制器的标识符。 你也可以使用performSegueWithIdentifier:sender:方法(它也实例化了视图控制器)。 您应该查看Apple文档中的“在您的应用中使用视图控制器”部分。 它还引用了子视图控制器与容器控制器同时被实例化的事实。

编辑之后:如果将容器视图embedded到另一个视图控制器中,则可以使用self.childViewControllers从包含的控制器中引用该embedded式视图的控制器(这将是一个数组,如果只有一个,则可以使用lastObject来获取) 。

对于某些情况,另一种select是使用-prepareForSegue:sender:来捕获embedded式控制器。

例如,如果我在CustomContainerViewControllerembedded了UINavigationController ,则可以在故事板中将embed segue embedContentStack命名并通过CustomContainerViewController其捕获

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"embedContentStack"]) { // can't assign the view controller from an embed segue via the storyboard, so capture here _contentStack = (UINavigationController *)segue.destinationViewController; } } 

这是关于它的另一个线程: 从父iOS访问容器视图控制器

他们build议在prepareForSegue中保留一个引用,或者在self.childViewControllers中searchembedded式viewController