2016-12-27 79 views
2

所以我有2个视图控制器现在已经成为TabBarController的一部分。我只是通过传递从VC所涉及的可变“selectedPack”到VC B:从ViewController传递数据到Viewcontroller,现在是TabBarController的一部分

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
    let transportJourneyViewController = storyBoard.instantiateViewController(withIdentifier: "JourneyViewController") as! JourneyViewController 
     transportJourneyViewController.selectedPack = self.packArray[indexPath.item].packID 
self.present(transportJourneyViewController, animated:true, completion:nil) 

但现在VC B或JourneyViewController是TabBarController的一部分,我需要改变它的东西,如:

let tbc = self.storyboard!.instantiateViewController(withIdentifier: "MyTabController") as! UITabBarController 
    tbc.selectedIndex = 1 
self.present(tbc, animated: true, completion: nil) 

问题我正在尝试将数据传递给变量“selectedPack”,如第一个代码块所示,因为此变量不存在于“tbc.selectedIndex = 1”中,它存在于“JourneyViewController”中。我感到困惑,因为我认为即使它是tabbarcontroller的一部分,当你改变时,你正在改变到那个viewcontroller,显然不是这种情况,即使这是你所看到的。

+0

这里精美的解释https://makeapppie.com/2015/02/04/swift-swift-tutorials-passing-data-in-tab-bar-controllers尝试/ SubClass Tabbar。 –

回答

2

你可以用下面的方式

let tbc = self.storyboard!.instantiateViewController(withIdentifier: "MyTabController") as! UITabBarController 
     tbc.selectedIndex = 1 

     // Suppose your viewcontroller is at tab bar first index. 
     let transportJourneyViewControllerOBJ = tbc.viewControllers?[0] as! ViewController 
     transportJourneyViewControllerOBJ.strValue = "Testvalue" 
     self.present(tbc, animated: true, completion: nil) 
+0

这是一个简单的解决方法谢谢 – Pippo

相关问题