Reputation: 12884
coming from a TableView, I am creating an MKMapView. I want to have more screen real estate, so I hide the status bar und set the navigation bar to transluscent.
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;
Unfortunaltely the navigation bar is positioned below the hidden status bar (see picture).
I already found out that this might help, since one can perform kind of a reload of the bar in the main event loop:
[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];
But this doesn't work so far. Any hint?
Thanks in advance.
Upvotes: 0
Views: 678
Reputation: 7381
I use this in iOS 6:
self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
Upvotes: 0
Reputation: 12884
Okay, I found out what to do:
[self performSelector:@selector(setNavigationController:NO) withObject:nil afterDelay:0.1];
[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];
This switches the navigation bar off and on again, which forces it to redraw in the correct position.
Upvotes: 1