Change Status bar color for UINavigationBar
1 min readOct 3, 2020
--
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.