J'ai 2 storyboards comme suit: (bientôt 3 quand j'ajouter dans un story-board admin qui est la raison pour laquelle je les sépare vers le haut)Une bonne façon de remplacer un story-board dans la Apps Hiérarchie, par opposition à la présentation sur
1 - Se connecter 2 - Storyboard pour les passagers
Selon leur connexion ou non à Firebase, c'est la façon dont je détermine la présentation. Je chargement à l'aide les didFinishLaunchingWithOptions du délégué de l'application comme si de le faire:
self.window = UIWindow(frame: UIScreen.main.bounds)
let standbyStoryboard: UIStoryboard = UIStoryboard(name: "StandbyStoryboard", bundle: nil)
let loginStoryboard: UIStoryboard = UIStoryboard(name: "LoginFlowStoryboard", bundle: nil)
// First check if the user is logged in
if let currentUser = FIRAuth.auth()?.currentUser {
let exampleViewController: StandbyVC = standbyStoryboard.instantiateViewController(withIdentifier: "Standby") as! StandbyVC
self.window?.rootViewController = exampleViewController
self.window?.makeKeyAndVisible()
} else {
// Not Logged In
let exampleViewController: LoginViewController = loginStoryboard.instantiateViewController(withIdentifier: "InitialLogin") as! LoginViewController
self.window?.rootViewController = exampleViewController
self.window?.makeKeyAndVisible()
}
Lorsque l'utilisateur se déconnecte, je voudrais terminer le story-board de passagers et charger une connexion initiale à nouveau (en supposant qu'ils sont connecté). Je me suis dit que je ferais comme si, de la même manière que je les présente avec le story-board de passagers lors de la connexion:
func logout() {
let loginStoryboard: UIStoryboard = UIStoryboard(name: "LoginFlowStoryboard", bundle: nil)
let exampleViewController: LoginViewController = loginStoryboard.instantiateViewController(withIdentifier: "InitialLogin") as! LoginViewController
self.present(exampleViewController, animated: true, completion: nil)
}
Est-ce la bonne façon de le faire? La seule raison pour laquelle je demande est parce qu'il semble que la fonction deinit {} ne soit pas appelée sur le contrôleur principal de mon storyboard passager lorsque la fonction de déconnexion est appelée et que la connexion initiale réapparaît (ce qui m'a amené à croire ce storyboard passager était encore attardais quelque part et que je suis « empiler plusieurs storyboards » si cela est possible et a du sens)
Gotcha! Merci d'avoir éclairci ça, c'est ce que je pensais que c'était. Des conseils sur la façon d'accomplir comment présenter correctement le storyboard en remplacement du storyboard actuel? Je vais éditer mon titre pour le rendre plus clair. – Belvedare
Vous ne "présentez pas de storyboard". Vous présentez un contrôleur de vue. Cela peut vraiment vous aider à vous arrêter et à vous familiariser avec la programmation orientée objet (classes et instances), ce qu'est un contrôleur de vue et ce qu'est un storyboard. – matt