如何在 UIKit 中垂直放置两个 UIViewController?

How do I put two UIViewController vertically in UIKit?

我想在 UIKit 中同时在一个屏幕上放置两个 UIViewController。但是,我找不到解决方案。

像这样:

我想在一个屏幕上独立显示 UINavigationController 和 Admob Banner。一个不影响另一个。

你能告诉我怎么做吗?

您想使用视图控制器容器。最简单的方法如下。

打开你的故事板。

添加一个视图控制器。我们称它为“Parent”。给它一个唯一的标识符。

点击“+”将新组件添加到您的 parent 视图控制器。搜索“容器”并将 2 个容器视图拖到 parent 视图控制器上。这些容器视图将包含您的 2 个视图控制器的内容视图。对这些容器视图设置约束,以便它们按照您在图片中显示的方式在顶部和底部布置。

接下来将视图控制器 1 和视图控制器 2 的视图控制器添加到故事板中。 (你也可以添加链接到其他故事板的视图控制器,但我会忽略它。)让我们称它们为 Child1 和 Child2。

Control-drag 从 Parent 中的每个容器到您想要显示在该容器中的 child 视图控制器。出现提示时,select 您要创建“嵌入转场”。

嵌入 segue 告诉您的应用它应该在加载 Parent 时加载 child 视图控制器,并使它们的内容视图成为容器视图的子视图。

在 Parent 中,PrepareForSegue() 方法将在每个 child 视图控制器已初始化且其视图准备好加载时触发。此时,您可以将信息传递给 child 视图控制器,设置委托链接等。(请注意,您不能也不应该直接操作 child 视图控制器的视图层次结构。相反,使用这些视图控制器的属性或方法将数据传递给 child 视图控制器,并让 children 的 viewDidLoad 方法根据需要将该数据安装到视图中。