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 statusBarStylevon allen Viewcontrollers.
So funktioniert dies für bestimmte ViewController - Letzter Schritt:
Öffnen Sie die Viewcontroller-Datei, in der Sie die ändern möchten, statusBarStyleund 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 statusBarStylefür den bestimmten Ansichtscontroller geändert und dann wieder geändert, defaultwenn der bestimmte Ansichtscontroller verschwindet. Wenn Sie das nicht implementieren, viewWillDisappear()wird das statusBarStyledauerhaft auf den neu definierten Wert von geändertUIStatusBarStyle.LightContent
Status bar is initially hidden = YESStatusleiste ausgeblendet wird, wenn Sie in der Datei info.plist festlegen, dass "Statussteuerung auf Controller-Basis anzeigen = NEIN" angezeigt wird.