gpt4 book ai didi

ios - 在 iOS 8 中使用 swift 将两个 View 分配给一个容器 View

转载 作者:搜寻专家 更新时间:2023-11-01 05:40:30 24 4
gpt4 key购买 nike

我正在尝试使用 Interface Builder 将两个 View Controller 分配给容器 View 。我尝试这样做,但每当我尝试将第二个 View Controller “嵌入”到我的容器 View 中时,它不会向其添加另一个 VC,它只会替换已经嵌入的那个。

最终,我的主要目标是拥有一个包含以下元素的屏幕(按顺序从上到下):

-导航栏- 包含分段 Controller 的高度为50的 View (它将在tableVC之间切换)-一个主视图,它将包含我的容器 View - 标签栏

我目前的设置几乎和上面描述的一样。这是一张照片: enter image description here

我最感兴趣的 View Controller 是高亮显示的容器(HomeViewController)。我目前使用的方法是 hacky,因为我目前有 2 个容器 View ,一个在另一个之上,并且它们嵌入了右侧描述的 2 个 TableView Controller (每个容器一个)。

我不太喜欢这种方法,因为每当主 VC(主视图 Controller )被实例化时,两个容器都会被实例化,因此默认情况下会进行 2 次网络调用来加载它们的内容,这可能会降低设备速度并可能使用更多内存超出需要。

理想情况下,我会加载一个映射到分段控件之一的 TableView Controller 的内容。然后,我将有一种机制,每当我转到分段控件中的第二个按钮(并且可能取消分配/摆脱其他 VC)时,它以某种方式实例化第二个 TableView Controller ,第三个按钮依此类推。或者能够以某种方式在我的 HomeViewController 内的一个区域( View )中显示/交替显示 2 个或多个 View Controller 。

目前我有这个简单的代码可以在我的 HomeViewController 中的容器 View 之间切换(隐藏和显示):

@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
}
}

正如我所说,这只会在我的 View Controller 中已经加载的 View 之间切换,其中已经包含数据。

我只是想看看我尝试编写的代码是否可行,或者我是否真的以正确的方式解决了问题,尽管我怀疑我是否这样做了。

感谢您阅读我的帖子并提前提出建议。

干杯!

最佳答案

将嵌入的 segue 添加到 NavigationController,将 ViewController 作为 rootViewController 添加到 NavigationController,从 rootViewController 添加任意数量的 segue。要加载 Controller ,您只需重写 segue 类即可在没有导航的情况下进行推送。

class NoAnimationSegue: UIStoryboardSegue {

override func perform() {
self.sourceViewController.navigationController?.pushViewController(self.destinationViewController, animated: false)
}

}

enter image description here

关于ios - 在 iOS 8 中使用 swift 将两个 View 分配给一个容器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155360/

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