将数据从ViewController传递到TabBarController

时间:2019-05-24 11:54:55

标签: ios swift xcode uiviewcontroller uitabbarcontroller

我需要将用户名从“视图控制器”登录屏幕传递到“标签栏控制器”文本字段。

我尝试了传统的方法,并且收到了

  

“无法转换为UITabBarController消息类型的值。

如果我不尝试传递数据,则标签栏控制器会正常加载。

//In my View Controller, I have tried this:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "GoToTabBar" {
        let custMainVC = segue.destination as! CustomerMainViewController
        custMainVC.tempName = self.emailTextField.text!

    }
}

//In my tab bar controller whose first View Controller has a name of CustomerMainViewController:

override func viewDidLoad() {
    super.viewDidLoad()
    username.text = self.tempName
}

结果是线程1,调试器指出:从私有有效用户设置读取。 无法转换类型为'UITabBarController'的值

我已经清除了所有网点和您可能建议的所有简单内容,并且正如我所说,如果我删除代码以传递正在加载的数据,那么这不是网点问题。谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

segue目标是tabBar访问它,然后您可以获得第一个vc并传递数据

let custMainVC = segue.destination as! UITabBarController
let res = custMainVC.viewControllers!.first as! CustomerMainViewController
res.tempName = self.emailTextField.text!