通常の NavController の動作は、ポート/ランドス ケープにあるときにサイズを変更することです。高さ 44px から 32px まで (頭のてっぺんから) 信じています。
私はストーリーボードを使用しており、コントローラーではなくナビゲーションバーを VC に含めました。縦向きと横向きの間で回転する場合、ナビゲーション バーのサイズは自動的に変更されません。
私はこの回答を見ましたが、これは役に立ちません:回転時に UINavigationBar のサイズを変更する
ナビゲーション バーは、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];
残念ながら、最後の部分は違いがなく、ナビゲーションバーが複数のコントローラーに含まれるため、上記の質問のすべての VC への回答で同じグルーコードを繰り返して回転時にサイズを変更したくありません。