#swift #uinavigationcontroller
#swift #uinavigationcontroller
Вопрос:
мой поток viewcontroller будет таким, как показано ниже:
navigationcontroller -> logoutviewcontroller ->(present)
viewcontroller -> (present) logoutviewcontroller (bar button coming)
|
loginviewcontroller
|
(present) logoutviewcontroller (bar button not coming)
Код logoutVC:
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "logout", style: .plain, target: self, action: #selector(handleLogout))
}
@objc func handleLogout(){
let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewController") as! ViewController
self.present(vc, animated: true, completion: nil)
}
Код LoginVC: при представлении logoutVC, но кнопка bar не появляется .. почему
@IBAction func loginButn(_ sender: Any) {
guard let email = emailTf.text, let password = passwordTf.text
else {
print("form is not valid")
return
}
Auth.auth().signIn(withEmail: email, password: password, completion: { (user, error) in
if error != nil{
print("login adding error: (String(describing: error))" as Any)
return
}
print("login sucessfully")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "LogOutViewController") as! LogOutViewController
self.present(vc, animated: true, completion: nil)
})
}
пожалуйста, предложите здесь код
Ответ №1:
Если под кнопкой bar вы подразумеваете navigationController
‘s navigationBar
, вам не нужно представлять ViewController
, но вам нужно использовать
self.navigationController?.pushViewController(vc, animated: true)
Комментарии:
1. если я это сделаю
pushViewController
, то никуда не пойду .. оставаясь на странице входа2. Проверьте,
navigationController
не равно нулю