ios - 将数据从 ViewController 传递到 Viewcontroller,该 Viewcontroller 现在是 TabBarController 的一部分

标签 ios swift xcode uitabbarcontroller

所以我有 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/

相关文章:

ios - Swift UILabel子类自动调用enum switch函数

swift - SpriteKit - 除了底部和顶部之外的所有侧面的边框

ios - 如何在捕捉二维码时让 iOS 相机建议我的应用程序

xcode - 带有委托(delegate)协议(protocol)的 headerdoc - Swift 和 xcode 7.2

ios - 如何使用后台点击隐藏数字键盘?

ios - AVAudioSession 在拒绝电话调用时中断

ios - BLE 在后台

ios - 选择 WhatsApp 后从 UIActivityViewController 中删除事件项目

javascript - UI 自动化中的应用程序切换

ios - 以编程方式制作多个 CollectionView