将容器视图控制器嵌套在另一个容器视图控制器中

Posted

技术标签:

【中文标题】将容器视图控制器嵌套在另一个容器视图控制器中【英文标题】:Nesting Container View Controller inside another Container View Controller 【发布时间】:2014-05-28 12:12:34 【问题描述】:

我有一个带有初始 UIViewController (vc1) 的 Storyboard,我在其中添加了一个容器视图(持有 vc2)。不幸的是,我的应用程序没有完整的故事板,所以当我尝试将 vc1 添加到我的 MainController 时

 [MainController.view addSubview:vc1];

Xcode 抛出异常

child view controller:<UIViewController: 0xcf9b270> should have parent view controller:<MainController: 0xcca1d20> but actual parent is:<vc1: 0xcf8b370>

我希望它的实际父级是 SecondViewController... 有没有办法在不使子视图控制器 (vc2) 成为 MainController 的子级的情况下实现这一点?

【问题讨论】:

【参考方案1】:

使用此代码添加子视图控制器:

[mainController addChildViewController:childController];
[mainController.view addSubview:childController.view];
[childController didMoveToParentViewController:mainController];

【讨论】:

试过了...但由于我的childviewcontroller 包含另一个容器视图,它在嵌套视图控制器上吠叫,而不是在direct child 上。 我在许多应用程序中使用相同的代码,并且有多个嵌套的子视图控制器,没有出错..您是否在主视图控制器上添加子视图控制器?因为无论何时使用嵌套的子视图控制器,父级必须始终是添加另一个子级作为其子级视图控制器的子级

以上是关于将容器视图控制器嵌套在另一个容器视图控制器中的主要内容,如果未能解决你的问题,请参考以下文章

ContainerView 标签栏?

如果我在 Storyboard 中有一个容器视图,是不是可以只将一个视图控制器嵌入到导航控制器中?

管理容器视图控制器内同级视图控制器之间的交互

将导航控制器栏按钮与嵌入容器视图交互

使用容器视图

将容器控制器(根视图控制器)设置为 UITabBarController 中视图控制器的委托