如何将值从一个选项卡式视图项传递给另一项?

时间:2019-08-15 14:21:56

标签: swift uitabbar

我在“新闻”标签中有一个按钮,并且我想通过任何方式将值传递给“竞争”标签。

但是问题没有传递正确的值。

我的代码是-

// NewsViewController

@IBAction func fullStndngAction(_ sender: Any) {
        //I Tried this
        let prefs = UserDefaults.standard
        prefs.set(true, forKey: "isFromNewsView")

        //I Tried This as well
        let whereFrom  = storyboard?.instantiateViewController(withIdentifier: "LatestNewsDetailViewController") as? LatestNewsDetailViewController
        whereFrom!.isFromNewsView = true

        self.tabBarController?.selectedIndex = 1

    }

但是我总是在竞争视野中变得虚假。

图片描述-

enter image description here

1 个答案:

答案 0 :(得分:1)

根据每种情况尝试以下解决方案之一。

情况1:如果您的ViewController嵌入在navigationController中,请尝试以下操作:-

if let competitionsVC = self.tabBarController.viewControllers?[1].children.first as? CompetitionViewController {
 competitionVC.isFromNewsView = true
 self.tabBarController?.selectedIndex = 1
}

情况2:如果您的ViewController未嵌入在navigationController中

if let competitionVC = self.tabBarController.viewControllers?[1] as? CompetitionViewController {
 competitionVC.isFromNewsView = true
 self.tabBarController?.selectedIndex = 1
}

说明:对于第一种情况,由于您要查找的VC嵌入在navigationController中,因此您已经向下寻找到其子级,即您要查找的VC。对于第二种情况,没有navigationController,因此您可以直接将其强制转换为要查找的VC,即..无需像第一种情况那样找到子项。