从ViewController传递数据到Viewcontroller,现在是TabBarController的一部分
问题描述:
所以我有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,显然不是这种情况,即使这是你所看到的。
答
你可以用下面的方式
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
这里精美的解释https://makeapppie.com/2015/02/04/swift-swift-tutorials-passing-data-in-tab-bar-controllers尝试/ SubClass Tabbar。 –