如何通过跳过标签栏控制器将数据从VC传递到另一个

时间:2018-03-16 11:15:56

标签: ios swift uitabbarcontroller segue uistoryboardsegue

我有一个主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和它们之间也有一个导航控制器连接。

2 个答案:

答案 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
           }
        }
     }
}