Nachdem ich alle Vorschläge gelesen und einige Dinge ausprobiert hatte, konnte ich dies mit den folgenden Schritten für bestimmte Viewcontroller zum Laufen bringen:
Erster Schritt:
Öffnen Sie Ihre info.plist und geben Sie einen neuen Schlüssel mit dem Namen " View controller-based status bar display " in NO ein
Zweiter Schritt (Nur eine Erklärung, keine Notwendigkeit, dies umzusetzen):
Normalerweise fügen wir den folgenden Code in die Anwendung ein (_: didFinishLaunchingWithOptions :) -Methode des AppDelegate,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
aber das wirkt sich auf die statusBarStyle
von allen Viewcontrollers.
So funktioniert dies für bestimmte ViewController - Letzter Schritt:
Öffnen Sie die Viewcontroller-Datei, in der Sie die ändern möchten, statusBarStyle
und geben Sie den folgenden Code ein viewWillAppear()
:
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
Implementieren Sie außerdem die viewWillDisappear()
Methode für diesen bestimmten viewController und fügen Sie die folgenden Codezeilen ein:
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
}
In diesem Schritt wird zuerst das statusBarStyle
für den bestimmten Ansichtscontroller geändert und dann wieder geändert, default
wenn der bestimmte Ansichtscontroller verschwindet. Wenn Sie das nicht implementieren, viewWillDisappear()
wird das statusBarStyle
dauerhaft auf den neu definierten Wert von geändertUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
Statusleiste ausgeblendet wird, wenn Sie in der Datei info.plist festlegen, dass "Statussteuerung auf Controller-Basis anzeigen = NEIN" angezeigt wird.