On iOS8, displaying my app in landscape mode will hide the status bar but on iOS 7 the status bar is displayed on both orientations
Try this
Add below code in didRotateFromInterfaceOrientation
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
EDIT
NO NEED TO WRITE CODE IN ALL VIEW CONTROLLER
Set View controller-based status bar appearance
to NO
in plist
and add below code in root view controller's viewDidLoad
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
Demo project
https://www.dropbox.com/s/uumneidk4wom5md/demoStatusBar.zip?dl=0
To display status bar in landscape mode in ios 8, try following method
- (BOOL)prefersStatusBarHidden { return NO;}
Swift version
override func prefersStatusBarHidden() -> Bool { return false}
Swift 3, Xcode 8, iOS 10, /* ViewController.swift */
override var prefersStatusBarHidden: Bool { return false }
Jageen's solution is probably the best, with just one minor change i.e. instead of using viewDidLoad
, it's better to use application:didFinishLaunchingWithOptions:
.
It's basically a two step process:
1). Set "View controller-based status bar appearance" to NO, in your project's Info.plist file.
2). Force the status bar hidden status to NO, in application:didFinishLaunchingWithOptions:
, using the following code:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
And, voila!
Note: It's important to use both the setStatusBarHidden:withAnimation
statements above, to force the status bar hidden state.