J'ai essayé de modifier le texte de couleur de la barre d'état mais aucune réponse de ce fil ne fonctionne pas. Tout spécialement pour XCode 6?
J'ai essayé d'insérer:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
à UIViewController
aussi
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
à AppDelegate.Swift
Et j'ai essayé de le changer dans info.plist
Mais cela ne l'affecte pas. Comment changer le texte de couleur de la barre d'état en blanc?
Dans votre Info.plist, vous devez définir Afficher l'apparence de la barre d'état basée sur le contrôleur à n'importe quelle valeur.
Si vous le définissez [[# #]] oui [~ # ~] alors vous devez remplacer la fonction preferredStatusBarStyle
dans chaque contrôleur de vue.
Si vous le définissez NO alors vous pouvez définir le style dans AppDelegate
en utilisant
UIApplication.sharedApplication().statusBarStyle = .LightContent
Il suffit de définir "Afficher l'apparence de la barre d'état basée sur le contrôleur == NON" dans votre liste et de mettre une seule ligne dans votre classe appdelegate dans didfinshLaunching.
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3.
Réglez simplement View controller-based status bar appearance == NO
Dans votre *.plist
et placez le code ci-dessous dans votre classe appdelegate dans la méthode didFinishLaunchingWithOptions
avant return
.
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = UIColor.red
}
UIApplication.shared.statusBarStyle = .lightContent
Vous pouvez modifier backgroundColor
et statusBarStyle
selon vos besoins.
Assurez-vous de définir le View controller-based status bar appearance
dans votre fichier info.plist vers Yes
.
De plus, si vous êtes dans un UINavigationController, vous ne pouvez pas simplement y définir le style dans ViewControllers. Sous-classe UINavigationController et ajoutez-y:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
if let vc = self.viewControllers?.last as? UIViewController {
return vc.preferredStatusBarStyle()
}
return super.preferredStatusBarStyle()
}
Vous pouvez maintenant définir le style de barre dans la sous-classe UIViewController et UINavigationController l'écoutera :).
Keenle a raison, à partir d'iOS7, vous devez désactiver les styles de barre d'état basés sur viewController avant de pouvoir le définir à l'échelle de l'application.
"Pour désactiver le comportement d'apparence de la barre d'état basée sur le contrôleur de vue, vous devez ajouter la clé UIViewControllerBasedStatusBarAppearance avec une valeur NON au fichier Info.plist de votre application, mais il n'est pas recommandé de le faire."