gpt4 book ai didi

ios - 单个容器 View 中的多个 subview Controller

转载 作者:行者123 更新时间:2023-11-28 06:43:54 25 4
gpt4 key购买 nike

我是 Swift 的新手,我必须在一个具有 Storyboard布局的 UIContainerView 中管理多个 subview Controller ,但是容器 View 一次只提供一个 subview 。

我已经使用了下面的代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
var controller: UIViewController = storyboard.instantiateViewControllerWithIdentifier("HomeVC") as UIViewController
self.containerViewA.addSubview(controller.view)
self.addChildViewController(controller)

最佳答案

在 ios 中,容器 View “一次”仅连接一个 subview Controller ,而不是 subview Controller ,我们可以使用一个 UINavigationController 及其 RootviewControlle,我们可以使用多个 UINavigationController 加载多个 subview Controller ,如下所述。

var navController1 = UINavigationController()
var navController2 = UINavigationController()
var navController3 = UINavigationController()
var navController4 = UINavigationController()

override func viewDidLoad()
{
super.viewDidLoad()

//navController1
let VC1 = self.storyboard!.instantiateViewControllerWithIdentifier("HomeVC") as! HomeVC
navController1 = UINavigationController(rootViewController: VC1)
navController1.navigationBarHidden = true

//navController2
let VC2 = self.storyboard!.instantiateViewControllerWithIdentifier("RoomControlesVC") as! RoomControlesVC
navController2 = UINavigationController(rootViewController: VC2)
navController2.navigationBarHidden = true

//navController3
let VC3 = self.storyboard!.instantiateViewControllerWithIdentifier("TelevisionVC") as! TelevisionVC
navController3 = UINavigationController(rootViewController: VC3)
navController3.navigationBarHidden = true

//navController4
let VC4 = self.storyboard!.instantiateViewControllerWithIdentifier("EntertainmentVC") as! EntertainmentVC
navController4 = UINavigationController(rootViewController: VC4)
navController4.navigationBarHidden = true

let btn = UIButton()
btn.tag = 1
self.ActionOnSideMenuButtons(btn)
}

@IBAction func ActionOnSideMenuButtons(sender: AnyObject)
{
for view in containerViewA.subviews{
view.removeFromSuperview()
}
switch sender.tag
{
case 1:// Home

NSLog("Home Button tapped")
addChildViewController(self.navController1)
self.navController1.view.frame = self.containerViewA.bounds
self.containerViewA.addSubview(navController1.view)
break

case 2:// Room Controles
NSLog(" Room Controles Button tapped")
self.navController2.view.frame = self.containerViewA.bounds
self.containerViewA.addSubview(navController2.view)
break
case 3:// Television
NSLog("Television Button tapped")
self.navController3.view.frame = self.containerViewA.bounds
self.containerViewA.addSubview(navController3.view)
break
case 4:// Entertainment
NSLog("Entertainment Button tapped")
self.navController4.view.frame = self.containerViewA.bounds
self.containerViewA.addSubview(navController4.view)
break

default:
break
}

}

在上面的代码中,我创建了 4 个导航 Controller ,并在 viewDidLoad 方法和“ActionOnSideMenuButtons”方法中初始化它们,只要点击任何侧边菜单按钮,我就会加载 subview Controller 。

关于ios - 单个容器 View 中的多个 subview Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089673/

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