web-dev-qa-db-fra.com

Comment définir le style Light Content de la barre d'état dans iOS 9 pour l'ensemble de l'application?

Je souhaite appliquer le style Light Content à l'ensemble de l'application.

La méthode suivante est obsolète dans iOS 9 sans la méthode de remplacement.

-setStatusBarStyle: animé:

Définit le style de la barre d'état, en animant éventuellement la transition vers le nouveau style.

Travaille dans la AppDelegate comme:

Swift 1.2 Code: _

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)

Mais lorsque je mets à niveau mon projet vers iOS 9/Swift 2, ils me donnent un message d'avertissement concernant:

<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

Donc, selon la solution du forum Apple et de cette réponse CGContextSaveGState: contexte invalide 0x0 Erreur uniquement sur le périphérique

J'ai donc supprimé la propriété UIViewControllerBasedStatusBarAppearance du fichier info.plist conformément à la solution.

Maintenant, la situation est la suivante: Comment définir le style Light Content de la barre d’état dans iOS 9 pour l’ensemble de l’application?

Du forum:

 enter image description here

Je ne veux pas définir le contenu clair pour chaque vue.

Aucune suggestion?

Objective-C devrait avoir le même problème.

11
Ashish Kakkad

Vous pouvez économiser beaucoup de travail en utilisant un UINavigationController et en définissant la variable barStyle de sa barre de navigation sur .Black. Vous n'avez qu'à le faire une fois; vous pouvez le faire dans l'éditeur de storyboard.

Ceci transformera automatiquement le style de votre barre d'état en .LightContent tant que cet UINavigationController est en commande.

27
matt

Vous pouvez également utiliser: UIApplication.shared.statusBarStyle = .lightContent. Cela fonctionne aussi dans Swift3.

0
Amanpreet