I am moving in a side menu view controller (ENSwiftSideMenu) with an animation. Since the side menu's background color is a pretty dark blue, I'd like to have the status bar, that is black by default, turn light while the menu is visible.
With View controller-based status bar appearance
being set to YES
(also tried NO
) inside the info.plist
, I tried to implement the following code which did, unfortunately, not work:
UIApplication.shared.statusBarStyle = .lightContent
Also, I tried this:
override func viewDidLoad() {
super.viewDidLoad()
setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .default
}
Any idea how to make it work?
Thanks!
Try This Code:
In your AppDelegate:
var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] // If you want to change title colour
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
//Update your plist with below code
View controller-based status bar appearance = NO
In your ViewController:
override func viewDidLoad() {
super.viewDidLoad()
// UIApplication.sharedApplication().statusBarStyle = .LightContent
navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.tintColor = UIColor.whiteColor()
navigationController?.navigationBar.translucent = true
}
func sideMenuWillOpen() {
print("sideMenuWillOpen")
UIApplication.sharedApplication().statusBarStyle = .LightContent
}
func sideMenuWillClose() {
print("sideMenuWillClose")
UIApplication.sharedApplication().statusBarStyle = .Default
}
Output from the above code.You can use some sort of UIAnimation to sync the effect..
Let me know.If the code works for you...