gpt4 book ai didi

ios - 如何使用一个 ContainerView 显示多个 ViewController

转载 作者:行者123 更新时间:2023-12-01 22:10:29 26 4
gpt4 key购买 nike

我的情况是,现在我的应用程序使用 12 个 ViewController。
每个都有两个 ContainerView,它们拥有相同的控件集(我将它们称为控制组),并通过 segues 显示它们。
到目前为止,这是可行的,但我必须为相同的两个 ContainerViews 布局和设置约束 12 次 - 每个 VC 一次。如果我添加另一个 VC,那么我必须重新布置它们,等等。如果我更改布局的任何部分,那么我必须一次又一次地修改所有 12 个 - 它并不是真正可扩展的。

在我看来,如果两个控制组位于一个还包含 ContainerView 的 VC 上会更容易。然后,如果 ContainerView 可以在十二个 View 中的每一个之间切换,那么维护起来会容易得多。

例如像这样的样机:

enter image description here

这个模型显示了同一个 VC 上的两个控制容器“Upper”和“Lower”。介于两者之间的是 ContainerView,它将显示所需的 VC。

当然,ContainerViews 只能嵌入一个 VC,所以我见过的最接近的解决方案是将 12 个 ContainerViews 放在一起——看起来还是很乱。

我不一定需要使用 ContainerView - 但是,有一些不错的功能,例如限制 VC 的大小并使其符合其尺寸,这使得布局内容更容易。

我怎样才能得到这种结构和行为?
(注意:我也希望能够使用 Storyboard)

最佳答案

从我正在工作的项目中:

enter image description here

向主视图 Controller 添加任意数量的容器 View 。比在您的代码中,更改 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
}
}

如果您有很多 Controller ,您可能需要使用 IBOutlet 组。

关于ios - 如何使用一个 ContainerView 显示多个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53549918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com