J'ai un problème avec la nouvelle barre de navigation pour iOS 11.
Dans la vue racine, définissez une nouvelle navigation par code:
if (@available(iOS 11.0, *)) {
self.navigationController.navigationBar.prefersLargeTitles = YES;
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;
}
Ensuite, à partir de la vue racine, j'ai poussé vers une autre vue et défini la barre de navigation de code par
if (@available(iOS 11.0, *)) {
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
}
Ça marche bien. Cependant, lorsque la vue Push et pop apparaît, une couleur noire apparaît comme l'image ci-dessous:
Je ne sais pas pourquoi la couleur noire est apparue sur cette vue bien que je n'aie pas reculé pour la barre de navigation est une couleur noire pour tout l'écran dans mon application.
Quelqu'un a une idée du problème. Veuillez m'envoyer quelques suggestions pour résoudre ce bogue. Merci.
J'ai résolu ce problème en définissant la couleur d'arrière-plan du contrôleur de navigation dans la classe UIViewController où je reçois la couleur noire.
Voici le code que j'ai utilisé:
navigationController?.view.backgroundColor = UIColor.white
J'ai essayé de changer les couleurs d'arrière-plan et les ombres dans le story-board, mais cela ne semble pas résoudre ce problème. J'espère que cette réponse est toujours pertinente ici.
J'ai résolu ce problème dans ma propre application en sous-classant UINavigationController et en définissant son view.backgroundColor
.
J'ai résolu ce problème avec une simple extension
extension UINavigationController {
@IBInspectable var backgroundColor: UIColor {
set {
self.view.backgroundColor = newValue;
}
get {
return self.view.backgroundColor ?? UIColor.black;
}
}
}
Vous pouvez changer la couleur d'arrière-plan du storyboard!