所以我有 2 个 View Controller ,它们现在已成为 TabBarController 的一部分。我只是通过以下方式将变量“selectedPack”从 vc A 传递到 vc B:
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 的一部分,当您更改时,您也会更改为该 View Controller ,但显然情况并非如此,即使您看到的是这样的。
最佳答案
您可以尝试以下方式
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)
关于ios - 将数据从 ViewController 传递到 Viewcontroller,该 Viewcontroller 现在是 TabBarController 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338945/