【发布时间】:2015-09-18 06:12:24
【问题描述】:
我正在尝试使用 Interface Builder 将两个视图控制器分配给一个容器视图。我尝试这样做,但是每当我尝试将第二个视图控制器“嵌入”到我的 Container View 时,而不是向其中添加另一个 VC,它只是替换了已经嵌入的那个。
最终,我的主要目标是拥有一个包含以下元素的屏幕(按顺序,从上到下):
-一个导航栏 - 高度为 50 的视图,其中包含分段控制器(将在 tableVC 之间切换) - 一个主视图,它将包含我的容器视图 - 一个标签栏
我目前的设置与上面描述的差不多。这是一张图片:
我最感兴趣的视图控制器是带有突出显示的容器(HomeViewController)的视图控制器。我目前使用的方法是 hacky,因为我目前有 2 个容器视图,一个在另一个之上,并且它们嵌入了右侧描绘的 2 个表视图控制器(每个容器一个)。
我不太喜欢这种方法,因为每当主 VC(主视图控制器)被实例化时,两个容器都会被实例化,因此默认情况下会进行 2 次网络调用来加载它们的内容,这可能会减慢设备速度并且可能会使用更多内存比需要。
理想情况下,我会加载一个映射到分段控件之一的表视图控制器的内容。然后,我将有一种机制,每当我转到分段控件中的第二个按钮(并且可能释放/摆脱其他 VC)时,我都会以某种方式实例化第二个表视图控制器,以此类推。或者以某种方式能够在我的 HomeViewController 内的一个区域(视图)中显示/交替显示/交替显示 2 个或多个视图控制器。
目前我有这个简单的代码,可以在我的 HomeViewController 中的容器视图之间切换(隐藏和显示):
@IBAction func segmentChanged(sender: AnyObject) {
switch segmentedControl.selectedSegmentIndex{
case 0:
println("index1 selected")
containerView1.hidden = false
containerView2.hidden = true
break
case 1:
println("index2 selected")
containerView1.hidden = true
containerView2.hidden = false
break
default:
containerView1.hidden = false
containerView2.hidden = true
break
}
}
正如我所说,这只会在我的视图控制器中已经加载的视图之间切换,其中的数据已经在其中。
我只是想看看我尝试编写的代码是否可行,或者我是否真的以正确的方式解决了问题,尽管我怀疑我这样做了。
感谢您阅读我的帖子并提前提出建议。
干杯!
【问题讨论】:
标签: ios iphone swift uitableview uiviewcontroller