iOS6で発生したと思われるナビゲーションバーの位置の問題があります。
これは、一部のユーザーが一部のビューを回転するときに経験する問題と同様に多くの方法で機能します
アプリにはスプラッシュ画面があり、全画面表示されます(に設定Hide statusbar during application launchすると達成されますTrue)
次にviewDidLoad、マスタービューコントローラーで、次の行にステータスバーをアプリに追加します。
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
これにより、StatusBarがアプリに追加され、期待どおりにビューが20ポイント下にシフトします。ただし、NavigationBarは、ステータスバーの下に配置されたままで、20ポイントのグリッチが下にあります。

iOS6以前は、次のコード行を追加してこれを修正していました。
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, [[UIScreen mainScreen] bounds].size.height-20);
ただし、これは機能しません。
いくつかの調査によると、呼び出しの時点でviewDidLoad、keyWindow.frameは{0,0}のサイズと起源の両方を持っており、それを変更しても効果がないことが示されています。
上記の2行を挿入するviewDidAppearと、アプリの起動時に同じ動作が発生します。ただし、別のビューに移動して最初のビューに戻ると、の変更によってkeyWindow.frame目的の効果が得られ、NavigationBarが本来あるべき位置に配置されます。
私の質問:StatusBarが最初に非表示になっているときにiOSアプリにStatusBarを追加した後、NavigationBarを正しい位置に配置するにはどうすればよいですか?