3
votes

Impossible de fermer UIViewController après une connexion réussie

J'ai du mal à supprimer un UIViewController de NavigationStack une fois la connexion terminée.

L'écran de connexion est un UIViewController qui est présenté avec cette ligne de code

        Auth.auth().signIn(withEmail: email, password: password) { (user, err) in
        if let err = err {
            print("Failed to sign in user with email", err )
        }

        //self.dismiss(animated: true, completion: nil)

        let userProfileVC = UserProfileController()
        let navController = UINavigationController(rootViewController: userProfileVC)

        self.navigationController?.pushViewController(navController, animated: true)

    }

Et puis j'exécute ce code pour connecter l'utilisateur via Firebase.

        let loginController = LoginController()
        self.present(loginController, animated: true, completion: nil)

Comme vous pouvez le voir, j'ai essayé la méthode pushViewController, et j'ai également essayé la méthode commentée self.dismiss ? Rien de ce que je fais ne semble supprimer l'UIView loginController et me ramener à l'écran d'accueil de UINavigationController. Quelqu'un peut-il m'aider, merci beaucoup.


0 commentaires

3 Réponses :


1
votes

vous pouvez faire comme ceci

self.dismiss(animated: true, completion: {
let userProfileVC = UserProfileController()
        let navController = UINavigationController(rootViewController: userProfileVC)

        self.navigationController?.pushViewController(navController, animated: true)
})


0 commentaires

1
votes

Vous devrez peut-être imprimer votre viewstack et nous le montrer afin de mieux comprendre, mais essayez l'une de ces méthodes:

navigationController?.popToRootViewController(animated: true)

ou

navigationController?.popViewController(animated: true)


0 commentaires

1
votes

Vous ne pouvez pas pousser vers un contrôleur particulier tant qu'un contrôleur est présent sur le contrôleur actuel. vous pouvez donc utiliser le délégué de protocole sur le contrôleur qui est le contrôleur actuel actuel. lorsque la méthode déléguée est appelée, vous pouvez pousser vers votre contrôleur.


0 commentaires