我在“新闻”标签中有一个按钮,并且我想通过任何方式将值传递给“竞争”标签。
但是问题没有传递正确的值。
我的代码是-
// 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
}
但是我总是在竞争视野中变得虚假。
图片描述-
答案 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,即..无需像第一种情况那样找到子项。