Ich habe verwendet
UIApplication.sharedApplication().setStatusBarStyle()
In meinem AppDelegate hat es gut funktioniert, aber seit iOS 9 ist diese Methode veraltet und ich kann keine Alternative finden.
Ich möchte den Statusleistenstil für meine gesamte Anwendung in .LightContent ändern, aber der einzige Vorschlag, den xCode gibt, ist, dies in jedem VC separat mit;
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
Hat jemand eine Idee, wie man das für die gesamte Anwendung macht?
Danke im Voraus
Ich denke, ich habe eine Lösung gefunden. Ich habe das eingestellt
View controller-based status bar appearance
Boolesch zu NO
In meiner info.plist Datei.
Dann ging ich zum General settings -> Deployment info
Meines Ziels und änderte die Dropdown-Option Status Bar Style
In Light
anstelle von Default
Dadurch wurde der Statusleistenstil für meine gesamte Anwendung in Light
geändert, genau das, was ich wollte.
Ich hoffe das hilft!
In Swift 3 ist das so:
UIApplication.shared.statusBarStyle = .lightContent
Verwenden Sie diese Methode, um IStatusBarStyle auf Ansichtscontrollern dynamisch zu aktualisieren
dies entfernt auch veraltete Warnungen
'setStatusBarStyle:' ist veraltet: zuerst veraltet in iOS 9.0 - Verwenden Sie - [UIViewController preferredStatusBarStyle]
für den Anruf
[[UIApplication sharedApplication] setStatusBarStyle:style];
Fangen wir an
Ziel - C
define tilityFunction
+(void)setStatusBarStyle:(UIStatusBarStyle )style {
[[NSUserDefaults standardUserDefaults] setInteger:style forKey:@"UIStatusBarStyle"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
überschreiben Sie diese Methode in Ihrem BaseViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
UIStatusBarStyle style = [[NSUserDefaults standardUserDefaults] integerForKey:@"UIStatusBarStyle"];
return style;
}
setzen Sie den UIStatusBarStyle-Wert für AnyViewController mit einer UtilityFunction wie folgt:
[UtilityFunctions setStatusBarStyle:UIStatusBarStyleDefault];
// call below code for preferred style
[self preferredStatusBarStyle];
Swift 4.
define tilityFunction
class func setPreferedStyle(style:UIStatusBarStyle)->Void {
UserDefaults.standard.set(style, forKey: "UIStatusBarStyle")
UserDefaults.standard.synchronize()
}
überschreiben Sie diese Methode in Ihrem BaseViewController
override var preferredStatusBarStyle: UIStatusBarStyle {
if let style: UIStatusBarStyle = UIStatusBarStyle(rawValue:UserDefaults.standard.integer(forKey: "UIStatusBarStyle")) {
return style
}
return UIStatusBarStyle.lightContent
}
setzen Sie den UIStatusBarStyle-Wert für AnyViewController mit einer UtilityFunction wie folgt:
Utility.setPreferedStyle(style: .lightContent)
// call below code for preferred style
preferredStatusBarStyle()
Das hat in Xcode 7 gut funktioniert.
In AppDelegate:
UIApplication.sharedApplication().statusBarStyle = .LightContent
für diejenigen, die noch mit Swift 3 in Xcode 8 arbeiten:
(etwas anders als Marlon Ruizs Antwort oben, keine Override-Funktion, sondern in viewDidLoad)
override func viewDidLoad() {
super.viewDidLoad()
var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}