У меня есть код firebase со слушателем, настроенным в AppDelegate, и выходом из системы, установленным в другом месте. Когда я нажимаю кнопку выхода, я не попадаю в контроллер представления входа.
Код выхода:
@IBAction func logOutTapped(_ sender: Any) {
try! Auth.auth().signOut()
}
Код делегата приложения:
let authListener = Auth.auth().addStateDidChangeListener { auth, user in
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
self.window = UIWindow(frame: UIScreen.main.bounds)
if user != nil
{
...//Some code
}
else
{
print("Headed to login view controller.")
let loginViewController = storyBoard.instantiateViewController(withIdentifier: "loginViewController") as! LoginViewController
self.window?.rootViewController = loginViewController
self.window?.makeKeyAndVisible()
}
Я знаю Код выхода вызывает «else» в делегате приложения, потому что мои журналы печатают «Headed to login view controller», когда я нажимаю logout. Однако контроллер представления входа в систему никогда не отображается. Он остается на экране, когда пользователь нажимает кнопку выхода. Когда приложение останавливается и запускается снова, отображается экран входа в систему. Идентификатор раскадровки правильно установлен как loginViewController.
Есть идеи?