我正在尝试将数据从我的主 ViewController 传递到 Tab Bar 中的另一个 ViewController。
我曾尝试使用下面的代码尝试,并得到了一个错误Could not cast value of type 'Test.FirstViewController'
,以'Test.ViewController'
override func viewWillAppear(_ animated: Bool)
{
super.viewWillAppear(animated)
let tab1Controller = self.tabBarController?.viewControllers?.first as! ViewController
print(tab1Controller.test)
}
您可以在您的ViewController
prepare
方法中访问标签栏控制器并设置您的值。
准备转场
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let barViewControllers = segue.destination as! UITabBarController
let destinationViewController = barViewControllers.viewControllers?[0] as! FirstViewController
destinationViewController.test = "Hello TabBar 1"
// access the second tab bar
let secondDes = barViewControllers.viewControllers?[1] as! SecondViewController
secondDes.test = "Hello TabBar 2"
}
然后在您的选项卡栏中 ViewControllers 声明变量,您希望将值设置为。
@IBOutlet weak var label: UILabel!
var test: String?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
label.text = test
}
第一视图控制器
第二个视图控制器
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句