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

相關問題