gpt4 book ai didi

ios - 遇到问题 "reaching"我的覆盖准备功能以编程方式更改选项卡栏 Controller 中的 View

转载 作者:行者123 更新时间:2023-11-28 07:27:09 26 4
gpt4 key购买 nike

我有一个带有容器 View 的 View Controller ,其中嵌入了一个标签栏 Controller 。我使用它根据主 vc 中的分段控件按下的内容显示 3 个不同的 View Controller 。我一直在关注这个解决方案:https://stackoverflow.com/a/38283669/11536234

我的问题是,当我更改分段控制索引(通过按不同的段)时,我不知道如何“到达”准备功能。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("prepare reached")

//super.prepare(for: segue, sender: sender)
//switch(segue.identifier ?? "") {
//case "TabBar":

guard let TabController = segue.destination as? UITabBarController else {
fatalError("Unexpected destination: \(segue.destination)")
}

TabController.selectedIndex = toggle.selectedSegmentIndex

//default:
//fatalError("Unexpected Segue Identifier; \(segue.identifier)")
//}
}

@IBAction func toggleAction(_ sender: UISegmentedControl) {
print("toggle is now at index: ", toggle.selectedSegmentIndex)
//performSegue(withIdentifier: "TabBar", sender: sender)
//container.bringSubview(toFront: views[sender.selectedSegmentIndex])
}

到目前为止,我已经尝试在链接到分段控件的 Action 函数中放置一个 performsegue 函数。但是,这不起作用,因为它本质上是以编程方式添加另一个嵌入式选项卡栏或再次调用嵌入转场,我收到此错误声明:“容器 View 中有意外的 subview 。也许嵌入转场已经触发一次或一次 subview 是以编程方式添加的?”

*带注释的代码行显示了我尝试过但没有奏效的内容与我目前所在位置的对比。

最佳答案

当您从另一个 View Controller (MainVC) 将 View Controller 嵌入到容器 View 时,仅在 MainVC 加载时执行一次转场。要将值传递给嵌入式 UIViewController/UITabBarController,您需要获取 child查看 Controller 并发送数据

class MainVC: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func segmentControlAction(_ sender: UISegmentedControl) {
if let tabBarVC = self.children.first(where: { $0 is UITabBarController }) as? UITabBarController {
tabBarVC.selectedIndex = sender.selectedSegmentIndex
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
//called before mainvc viewDidLoad
let destinationVC = segue.destination as? UITabBarController
destinationVC?.selectedIndex = 1
}
}

enter image description here

关于ios - 遇到问题 "reaching"我的覆盖准备功能以编程方式更改选项卡栏 Controller 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56246814/

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