Есть ли способ выполнить условный переход в быстром ViewController? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь авторизовать пользователя, используя Firebase.Если учетные данные пользователя проверены, я перехожу на главный экран моего приложения в операторе if-else с использованием user и error.Однако executeSegue (...) выполняется независимо от того, действительно ли произошел вход в систему.

Я уверен, что проблема не в проблемах проверки / входа в систему / выхода из системы в Firebase или в текстовых полях.

Вот мой код:

func handleSignIn(username:String, password:String) {
    Auth.auth().signIn(withEmail: username, password: password) { user, error in
        if error == nil && user != nil {
            //self.dismiss(animated: false, completion: nil)
            print("Logged in!")
            self.performSegue(withIdentifier: "toHome", sender: nil)
        } else {
            print("Error logging in: \(error!.localizedDescription)")
        }
    }
}

Best,

Code Daddy

1 Ответ

0 голосов
/ 11 февраля 2019

Я решил эту проблему.

Код выше на самом деле правильный и функциональный.Проблема заключалась в том, что метод handleSignIn был вызван в пределах:

 @IBAction func didTapLogin(_ sender: Any) {...}

Эта кнопка сама была соединением segue с идентификатором "toHome", и поэтому независимо от того, для чего вычислялся блок if / else, приложение выполнялосьв домашнее меню.

После того как я удалил и заново установил переход "toHome" из LoginViewController в HomeViewController (а не кнопку «Вход в HomeViewController»), этот код работал правильно.

...