Ajouter
application.statusBarStyle = .lightContent
à la méthode didFinishLaunchingWithOptions de mon AppDelegate, ni en ajoutant
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIStatusBarStyle.lightContent
}
au VC ne fonctionne plus sur iOS12/Xcode10
Des idées?
Si vous choisissez une même couleur de barre d'état pour chaque contrôleur de vue:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Ajoutez ceci à votre Info.plist et définissez la couleur de la barre d'état dans Projet -> Cibles -> Style de la barre d'état par la couleur souhaitée.
D'un autre côté, dans votre cas, vous avez un contrôleur de navigation qui est intégré dans un contrôleur de vue. Par conséquent, vous souhaitez changer la couleur de la barre d'état pour chaque page.
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
Ajoutez ceci à votre Info.plist. Ensuite, créez une classe personnalisée pour votre NavigationController. Après cela, vous pouvez implémenter la méthode:
class LightContentNavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
C'est ça! Veuillez m'informer si cela a été utile!
Cela n'a rien à voir avec iOS 12. Vous avez juste des règles erronées.
Dans une situation de contrôleur de navigation, la couleur de la barre d'état n'est pas déterminée par le preferredStatusBarStyle
du contrôleur de vue.
Il est déterminé, étonnamment, par la barre de navigation barStyle
. Pour obtenir un texte de barre d'état clair, dites (dans votre contrôleur de vue):
self.navigationController?.navigationBar.barStyle = .black
Difficile à croire, mais vrai. J'ai reçu cette information directement d'Apple, il y a des années.
Vous pouvez également effectuer ce réglage dans le storyboard.
Exemple! Le style de barre de la barre de navigation est .default
:
Le style de barre de la barre de navigation est .black
:
REMARQUE pour iOS 13 Cela fonctionne toujours dans iOS 13 tant que vous n'utilisez pas de grands titres ou UIBarAppearance. Mais fondamentalement, vous êtes censé cesser de le faire et laisser la couleur de la barre d'état être automatique par rapport au choix du mode clair ou sombre de l'utilisateur.