我的情况是,现在我的应用程序使用12个ViewController。
每个容器都有两个ContainerViews,它们具有相同的控件集(我称它们为控件组),并通过segue显示它们。
到目前为止,这仍然有效,我必须为相同的两个ContainerViews布局和设置约束12次-每个VC一次。而且,如果我添加另一个VC,则必须再次对其进行布局,依此类推。如果更改布局的任何部分,则必须一次又一次地修改全部12个-这不是真正可伸缩的。
在我看来,如果两个控制组位于一个还包含ContainerView的VC上,会更容易。然后,如果ContainerView可以在十二个视图中的每一个之间切换,则维护起来会容易得多。
例如这样的样机:
该模型显示了同一VC上的两个控制容器“Upper”和“Lower”。在两者之间是ContainerView,其中将显示所需的VC。
当然,ContainerViews只能嵌入一个VC,所以我看到的最接近的解决方案是将12个ContainerView彼此叠置-看起来还是很混乱。
我不一定需要使用ContainerView-但是,有一些不错的功能,例如限制VC的大小并使其遵循其尺寸,这使内容的布局更加容易。
如何获得这种结构和行为?
(注意:我也希望能够使用情节提要)
最佳答案
从项目中我正在工作:
将所需数量的容器视图添加到主视图控制器。比在您的代码中,更改alpha
值以显示/隐藏它们。像这样:
@IBOutlet weak var timelineContainerView: UIView!
@IBOutlet weak var albumsContainerView: UIView!
@IBAction func journeySegmentedControlValueChanged(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
timelineContainerView.alpha = 1.0
albumsContainerView.alpha = 0.0
case 1:
timelineContainerView.alpha = 0.0
albumsContainerView.alpha = 1.0
default:
break
}
}
如果您有很多控制器,则可能要使用IBOutlet组。
关于ios - 如何使用一个ContainerView显示多个ViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53549918/