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:
Je ne veux pas définir le contenu clair pour chaque vue.
Aucune suggestion?
Objective-C devrait avoir le même problème.
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.
Vous pouvez également utiliser: UIApplication.shared.statusBarStyle = .lightContent. Cela fonctionne aussi dans Swift3.