I want status bar to show up in viewWillAppear() and disappear in viewWillDisappear() of my ViewController
I was using
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
but it is deprecated in iOS 9.0
I am using
UIApplication.shared.isStatusBarHidden = false
in swift, but in objective C this is readonly value...
prefersStatusBarHidden also does not work for me, because I need to hide status bar in viewWillDisappear() function
-(BOOL)prefersStatusBarHidden{
return YES;
}
Can anybody help me?
For each view controller you want to change the visibility of the status bar you need to override prefersStatusBarHidden
. For this to actually work though, you must add the following key/value in your project's Info.plist
:
Key:
View controller-based status bar appearance
Value: YES
To control the visibility of the status bar in viewWillAppear
and viewWillDisappear
you can do:
var statusBarHidden = false
override func viewWillAppear() {
super.viewWillAppear()
statusBarHidden = false
self.setNeedsStatusBarAppearanceUpdate()
}
override func viewWillDisappear() {
super.viewWillDisappear()
statusBarHidden = true
self.setNeedsStatusBarAppearanceUpdate()
}
override var prefersStatusBarHidden: Bool {
return statusBarHidden
}
For Swift 3,
override var prefersStatusBarHidden: Bool{
return true
}
and add viewDidLoad()
self.modalPresentationCapturesStatusBarAppearance = true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With