, . , UITAbBar, , , viewDidAppear: , , -, , .
Assuming you are handling this, one option is to change navigationBarHidden after you have animated. There is no good place to process along the way, as you want pop animation to happen after the bar animation. The quickest solution is to hide the panel, and then manually run runloop for ~ 0.5 seconds, until it comes to life, and then continues. It is important, but it is fast and it works.
- (void)viewWillDisappear:(BOOL)animated {
if (animated) {
[self.navigationController.navigationBar setHidden:YES animated:YES];
}
NSDate *endDate = [NSDate dateWithTimeIntervalSinceNow:0.5];
while([[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:endDate]);
}
If you want to do this cleanly, I recommend re-executing the UINavigationController from scratch.
source
share