Navigation bar jumps out from under status bar?

ios, ios7, uiviewcontroller

Solution

Another simple trick is do this:

In the MasterViewController

When is preparing for Segue:

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    [UIView transitionWithView:self.navigationController.view
                      duration:0.75
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:nil
                    completion:nil];
}

And when Unwind the AboutViewController

- (IBAction)aboutUnwind:(UIStoryboardSegue *)segue {

[UIView transitionWithView:((UIViewController *)segue.sourceViewController).view
                  duration:0.75
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:nil
                completion:nil];

}

Problem

I have a button in my main view controller that pushes a navigation controller with an embedded view controller using a segue. When the new view controller is presented, the navigation bar on it briefly appears under the status bar. (The status bar is not hidden.) The contents (which are relative to the top layout guide) are in the correct location. As soon as the animation is complete, it fixes itself. When the view is dismissed again, the same thing happens: the main view controller briefly overwrites the status bar. For the main view controller, this is a little more significant as it's based on a `UITableViewController`; the entire table jumps. Again, when the animation is complete the view controller fixes itself. I've tried turning off translucency on the navigation bar, but it only makes the problem more obvious. All of this works as expected on iOS 6. I've uploaded a minimalist test case here: https://github.com/tewha/FlipTest

Original source