Subclass UINavigationController and then override these methods:
In Objective-C:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
In Swift:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .lightContent
}
Alternatively, you can set barStyle
on the UINavigationBar
instance:
Objective C:
// e.g. in your view controller's viewDidLoad method:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack; // this will give you a white status bar
Swift
// e.g. in your view controller's viewDidLoad method:
navigationController?.navigationBar.barStyle = .black // this will give you a white status bar
UIBarStyle
options are default
, black
, blackOpaque
, blackTranslucent
. The latter 3 should all give you a status bar with white text, just the last two specify the opacity of the bar.
Note: you can still change the appearance of your navigation bar as you like.