J'ai trois viewControllers dans un UINavigationController
. Dans le second j'ai besoin de cacher la barre de navigation mais pas le bouton de retour et d'autres boutons de la barre. Pour cette raison, je ne peux pas utiliser isNavigationBarHidden = true
Actuellement je traitais ci-dessus comme suit:UINavigationController masquer uniquement navigationBar - Retour animation numéro
Première viewController:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.barTintColor = Constants.kThemeRedColor
self.navigationController?.navigationBar.tintColor = UIColor.white
self.navigationController?.navigationBar.barStyle = .black
self.navigationController?.navigationBar.isTranslucent = false
}
Second viewController (bar cacher seulement nav):
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.view.backgroundColor = UIColor.clear
}
Le problème ici est que lorsque je navigue depuis et vers le firstViewController, pendant une très courte durée lorsque le 1er viewController disparaît et apparaît respectivement, je vois une barre de navigation noire dessus. Je sais que c'est à cause du code écrit dans 2nd viewController. Mais je n'ai pas d'autre solution proche de le faire. Fixation d'une capture d'écran:
Première viewController (comment il devrait être):
Deuxième viewController:
Première viewController (avec barre de navigation noire pour une courte durée):
Quelle est la couleur de votre vue? est tableview ci-dessous navbar? –