A typical NavController behavior is to resize the port / terrain. From 44px height to 32px I believe (from the top of the head).
I use a storyboard and turn on the navigation bar in VC, not in the controller. When you rotate between a portrait and a landscape, the navigation bar does not change automatically.
I saw this answer, but it doesn’t help: Resize UINavigationBar during rotation
The navigation bar is the controller through the appearance, which is loaded into the App Delegate:
UIImage *portraitImage = [UIImage imageNamed:@"mainNavBar"];
UIImage *landscapeImage = [UIImage imageNamed:@"mainNavBarLandscape"];
[[UINavigationBar appearance] setBackgroundImage:portraitImage forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:landscapeImage forBarMetrics:UIBarMetricsLandscapePhone];
[[UINavigationBar appearance] setBackgroundColor:[UIColor blackColor]];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], UITextAttributeTextColor,
[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5],UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)],
UITextAttributeTextShadowOffset,nil]];
[[UINavigationBar appearance] setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin];
Unfortunately, the last part does not make any difference, and since the navigation bar will be included in several controllers, I do not want to repeat the same glue code in the answer above to all my VCs to resize it while rotating.