У меня есть экран входа в систему, который переходит к панели вкладок, которая затем переходит к контроллеру навигации.Мне нужно передать имя пользователя на первый контроллер представления навигационного контроллера.Итак:
Экран входа в систему -> TabBarController -> NavigationController -> CustomerMainViewController
Я переполнен стеком и реализовал следующий код, который, по-видимому, является консенсусом:
//From my login View Controller
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let tabVC = segue.destination as! UITabBarController
let navVC = tabVC.viewControllers!.first as! UINavigationController
let destVC = navVC.viewControllers.first as! CustomerMainViewController
destVC.tempName = self.emailTextField.text!
}
@IBAction func loginButtonPresssed(_ sender: Any) {
self.performSegue(withIdentifier: "GoToTabBar", sender: self)
}
//From my View Controller (CustomerMainView Controller)
override func viewDidLoad() {
super.viewDidLoad()
username.text = self.tempName
}
Я ожидаю, что поле имени пользователя на моем контроллере представления будет заполнено, но оно пустое.