UIStatusBarStyle funktioniert nicht in Swift
Ich versuche, ändern Sie den Status Bar Farbe in meinem Swift app weiß, bin aber schlagen eine Mauer. Ich habe 3 ViewControllers, sind jeweils eingebettet in einen NavigationController (könnte das das Problem sein? Ich habe bereits versucht, den code in den NavigationController-Klasse.) Ich habe versucht, die beiden folgenden code-Stücken, die in der didFinishLaunchingWithOptions meiner AppDelegate.swift-Datei, aber weder gearbeitet.
application.statusBarStyle = .LightContent
und
UIApplication.sharedApplication().statusBarStyle = .LightContent
Alle, die Docs haben zu sagen ist, dass UIBarButtonStyle ist ein Int, und es gab mir diese enum-Schnipsel, die nicht helfen, mich überhaupt mit der Umsetzung.
enum UIStatusBarStyle : Int {
case Default
case LightContent
case BlackOpaque
}
Was bin ich?
InformationsquelleAutor der Frage davidrayowens | 2014-06-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Möglichkeiten.
Wenn Sie möchten, um weiterhin die manuelle Einstellung der Stil in der Statusleiste, auch weiterhin tun, was Sie tun, aber müssen Sie fügen Sie die folgenden Schlüssel auf Ihre info.plist-Datei mit einem Wert von
NO
.Oder, wenn Sie fortsetzen wollen zu verwenden, view controller-based status bar appearance, anstatt die Anwendung statusBarStyle, überschreiben Sie die
preferredStatusBarStyle
Eigenschaft in jedem view-controller, für die Sie möchten, dass ein status-bar-style.Swift 3
Swift 2
InformationsquelleAutor der Antwort Mick MacCallum
in AppDelegate.swift didFinishLaunchingWithOptions
Info.plist
in AppDelegate.swift didFinishLaunchingWithOptions
Info.plist
InformationsquelleAutor der Antwort Maselko
Müssen Sie einstellen:
navigationController.navigationBar.barStyle = .black
und der text erscheint in weiß
InformationsquelleAutor der Antwort Nico S.
Für iOS9.x und Xcode7, nur diesen inneren
AppDelegate.swift
:Dieser schaltet sich automatisch Ihren status-bar-style zu
.Lightcontent
für alle view-Controller innerhalb eines UINavigationController.(Auch löschen
View controller-based status bar appearance
von der Info.plist um die Warnungen zu unterdrücken sind Sie wahrscheinlich zu sehen, auch!)InformationsquelleAutor der Antwort Biodave
In Swift 3 -, status-bar-style wurde geändert, um eine berechnete Eigenschaft im UIViewController, die Sie außer Kraft setzen können, wie diese:
InformationsquelleAutor der Antwort Eric Welander
Auf iOS 9 die folgenden (setStatusBarStyle) ist als veraltet markiert, und Sie werden eine Warnung erhalten, wenn Sie diesen Weg gehen.
Wenn Sie möchten, dass alle statusBars geändert in ein single-shot, versuchen Sie, den folgenden zu Ihrer Info.plist. Dies wird auch Ihren Start-Bildschirm Statusleiste weiß. Während der obige code nicht.
InformationsquelleAutor der Antwort GuiSoySauce
für mich alle oben dind nicht funktionieren, bis ich hinzufügen:
also:
UIViewControllerBasedStatusBarAppearance
zuYES
im.plist
viewDidLoad
nennenself.setNeedsStatusBarAppearanceUpdate();
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
navigationBar.barStyle
so endgültigfür Licht Inhalt:
override var preferredStatusBarStyle: UIStatusBarStyle {
self.navigationController?.navigationBar.barStyle = .black;//or default
return .lightContent //or default
}
und für schwarz Inhalt verwenden Sie die Standard -
Die Quelle, aus hier und hier.
ist, und wenn dies nicht funktioniert, können Sie versuchen, fügen Sie ein
UINavigationController
extension
:InformationsquelleAutor der Antwort Constantin Saulenco
Seltsam, über Swift-3.1 & XC8.2.1, aber all das hat nicht funktioniert.
Was ich getan habe, ist nur
Keine Plist, keine anderen Sachen.
HTH
InformationsquelleAutor der Antwort Lord iPhonius
In Swift 3.0 können Sie überschreiben eine get-Methode im ViewController für die View controller-based status bar appearance:
InformationsquelleAutor der Antwort Denis Kreshikhin
Nicht Bearbeiten Sie Ihre Informationen.plist. Fügen Sie diese an Ihre ViewController.swift:
InformationsquelleAutor der Antwort Sev
Schritt 1. Fügen Sie info.plist
View controller-based status bar appearance -> NO
Schritt 2. Fügen Sie code in der Methode, wo Sie Sie brauchen, um status-bar-Farbe:
Key code-Zeile:
setNeedsStatusBarAppearanceUpdate()
InformationsquelleAutor der Antwort Igor