Je souhaite que l'un de mes viewControllers dans une pile de contrôleurs de navigation soit en "plein écran": pas de barre de navigation ni de barre d'état. J'ai ce code qui cache et montre la barre de navigation dans une des vues contrôleurs de contrôleur de navigation (je veux qu'il soit poussé en plein écran):Masquage des barres de navigation et d'état pour un seul UIViewController dans une pile UINavigationController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated:animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated:animated)
}
Dans le même viewController je me cache aussi barre d'état avec ceci:
override var prefersStatusBarHidden: Bool {
return true
}
il se cache et montrant comme prévu, mais le problème est que je reçois une bande noire sur la transition en poussant ce contrôleur de vue et à l'arrière de celui-ci (voir les images).
Poussez à ce contrôleur: Push to this controller
Et De retour de ce contrôleur (bouton retour):
Il semble que cela se produit en raison de la fonction prefersStatusBarHidden La suppression de cette résout le problème.
Le code pour afficher/masquer la barre de navigation est tirée de: https://stackoverflow.com/a/2406167/4207465
et basé sur la bibliothèque de développeur Apple: « Affichage et masquage de la barre de navigation - Lorsqu'une barre de navigation est utilisé en conjonction avec un contrôleur de navigation, vous utilisez toujours la méthode setNavigationBarHidden: animated: de UINavigationController pour afficher et masquer la barre de navigation ... "
Vous ne savez pas pourquoi ça se passe, Merci pour l'aide!
Il semble que cela se produit à cause de la prefersStatusBarHidden La suppression de cette résout le problème, enquête pourquoi .. –