我正在使用一个iOS应用程序,其主选项卡栏控制器的底部有5个选项卡。每个选项卡均显示一个UINavigationController。
我需要其中一个屏幕具有另一个选项卡栏控制器,该选项卡必须沿顶部显示(在此主选项卡栏控制器内部)。此内部标签栏控制器仅具有2个标签,并在两个视图控制器之间切换。
这里是一个插图(注意:我没有使用情节提要,这只是我在情节提要中做出的快速视觉表示)
我立即想到这是UISegmentedControl的工作,但是UISegmentedControl似乎仅适用于视图。而不是切换视图控制器,而是在设置视图容器并在该视图容器上显示不同的视图:
var simpleView1: UIView
var simpleView2: UIView
viewDidLoad() {
simpleView1 = SimpleVC1().view
simpleView2 = SimpleVC2().view
viewContainer.addSubview(simpleView1)
viewContainer.addSubview(simpleView2)
}
@IBAction func switchViewAction {
//if segment 1
viewContainer.bringSubView(toFront: simpleView1)
//
//if segment 2
viewContainer.bringSubView(toFront: simpleView2)
//
}
(摘自https://www.youtube.com/watch?v=e5nxg5NzLks)
我想要的实际上是每次设置一个不同的viewController并设置自己的生存期等。
其原因之一是此内部选项卡栏将显示的一个视图控制器已经完成并且可以正常工作。因此,理想情况下,我想将此视图控制器嵌入到内部选项卡栏中,并将其分配给一个选项卡,然后将新的视图控制器分配给新的选项卡。
我的问题是,鉴于此信息,我应该在这里采取的总体路径是什么?是否有一个很好的方法可以使用嵌套的选项卡栏控制器来实现,或者是UISegmentedControl可以使用的方式(不过我需要使用VC而不是视图。)