Figured out the 3 options for solving this problem.
Option 1: Resize the Nav Bar
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= currentVersion) {
self.navBar.frame = CGRectMake(self.navBar.frame.origin.x, self.navBar.frame.origin.y, self.navBar.frame.size.width, 64);
}
Option 2: Hide the Status Bar
For example, in the modal view where you want to hide the status bar
Add this method
- (BOOL)prefersStatusBarHidden
{
return YES;
}
In viewDidLoad add
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= currentVersion) {
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
else {
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
Now, when you dismiss the modal view, and you want your status bar back. Add this in viewWillAppear
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= currentVersion) {
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
NSLog(@"ios7");
}
else {
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
}
and this, but return NO this time
- (BOOL)prefersStatusBarHidden
{
return NO;
}
Option 3: Embed in Nav Controller
Select your modal view, just embed that in a Navigation Controller.
