Dopo aver letto tutti i suggerimenti e provato alcune cose, ho potuto farlo funzionare per specifici viewcontroller usando i seguenti passaggi:
Primo passo:
Apri la tua info.plist e inserisci una nuova chiave denominata " Visualizza l'aspetto della barra di stato basata sul controller " su NO
Secondo passo (solo una spiegazione, non è necessario implementarlo):
Normalmente inseriamo il seguente codice nell'applicazione (_: didFinishLaunchingWithOptions :) metodo dell'AppDelegate,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
ma ciò influisce statusBarStyle
su tutti i ViewController.
Quindi, come farlo funzionare per ViewController specifici - Fase finale:
Apri il file viewcontroller in cui desideri modificare il statusBarStyle
e inserisci il seguente codice viewWillAppear()
,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
Inoltre, implementa il viewWillDisappear()
metodo per quel viewController specifico e inserisci le seguenti righe di codice,
Swift 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
Swift 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
Questo passaggio cambierà prima il statusBarStyle
viewcontroller specifico e poi lo cambierà nuovamente default
quando il viewcontroller specifico scompare. Non implementando il viewWillDisappear()
cambierà statusBarStyle
definitivamente il nuovo valore definito diUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
nel file info.plist, "Visualizza aspetto barra di stato basata sul controller = NO", la barra di stato verrà nascosta.