【发布时间】:2020-08-14 11:54:56
【问题描述】:
我想在 UIKit 中同时将两个 UIViewController 放在一个屏幕上。但是,我找不到解决方案。
像这样:
我想在一个屏幕上独立显示 UINavigationController 和 Admob Banner。一个不影响另一个。
你能告诉我怎么做吗?
【问题讨论】:
标签: swift uiviewcontroller uikit
我想在 UIKit 中同时将两个 UIViewController 放在一个屏幕上。但是,我找不到解决方案。
像这样:
我想在一个屏幕上独立显示 UINavigationController 和 Admob Banner。一个不影响另一个。
你能告诉我怎么做吗?
【问题讨论】:
标签: swift uiviewcontroller uikit
您想使用视图控制器容器。最简单的方法如下。
打开你的故事板。
添加视图控制器。我们称它为“父母”。给它一个唯一的标识符。
点击“+”将新组件添加到您的父视图控制器。搜索“容器”并将 2 个容器视图拖到您的父视图控制器上。这些容器视图将包含您的 2 个视图控制器的内容视图。在这些容器视图上设置约束,使它们在您的图片中显示在顶部和底部。
接下来将视图控制器 1 和视图控制器 2 的视图控制器添加到情节提要中。 (您也可以添加链接到来自其他故事板的视图控制器,但我将忽略这一点。)让我们将它们称为 Child1 和 Child2。
从 Parent 中的每个容器按住 Control 并拖动到要出现在该容器中的子视图控制器上。出现提示时,选择您要创建“嵌入转场”。
embed segue 告诉您的应用它应该在加载 Parent 时加载子视图控制器,并使它们的内容视图成为容器视图的子视图。
在 Parent 中,PrepareForSegue() 方法将在每个子视图控制器已初始化并且其视图准备加载时触发。此时您可以将信息传递给子视图控制器,设置委托链接等(请注意,您不能也不应该直接操作子视图控制器的视图层次结构。相反,将数据传递给子视图控制器使用这些视图控制器的属性或方法,并让孩子的 viewDidLoad 方法根据需要将该数据安装到视图中。
【讨论】: