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 statusBarStylesu tutti i ViewController.
Quindi, come farlo funzionare per ViewController specifici - Fase finale:
Apri il file viewcontroller in cui desideri modificare il statusBarStylee 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 statusBarStyleviewcontroller specifico e poi lo cambierà nuovamente defaultquando il viewcontroller specifico scompare. Non implementando il viewWillDisappear()cambierà statusBarStyledefinitivamente il nuovo valore definito diUIStatusBarStyle.LightContent
Status bar is initially hidden = YESnel file info.plist, "Visualizza aspetto barra di stato basata sul controller = NO", la barra di stato verrà nascosta.