我有一个主VC,它通过segue与Tab Bar Controller连接,Tab Bar控制器有2个部分,那些是2个ViewControllers。我需要将数据从主VC传递到使用segue从Tab Bar Controller派生的特定VC。由于我只能使用一个segue(仅显示TBController),有没有办法通过跳过Tab Bar控制器直接将数据从main传递到另一个?
聚苯乙烯。那两个VC在Tab Bar Controller和它们之间也有一个导航控制器连接。
答案 0 :(得分:0)
试试这个
var secondTab = self.tabBarController?.viewControllers[1] as SecondViewController
secondTab.array = firstArray
答案 1 :(得分:0)
在准备segue函数时,您可以通过TabBarControllers属性viewControllers
获取tabBar关联的控制器 - 这样您就可以选择一个标签栏控制器的视图控制器来成为活动视图控制器。然后你使用tabBarController的属性selectedIndex
来实际转换到那个VC。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let index = 0//the index of the tab you wish to segue to
if let bar = segue.destination as? TabBarVC {
if let nav = bar.viewControllers[index] as? UINavigationController {
if let navChildVC = navigationController.viewControllers[0] as? YourVCType { // index of the controller of enumerate to find it
// pass data to navChildVC
bar.selectedIndex = index
}
}
}
}