アプリを iOS 6 に適応させるまで、この問題はまったくありませんでした。(dismissViewControllerAnimated:completion: を使用して) モーダル セグエから戻るたびに、メイン ビューは、ステータス バーの高さ分のオフセット (およびその後、ステータスバーの後ろに表示されます)。
私が見つけた唯一の回避策は、追加することです:
self.navigationController.view.frame = CGRectMake(0, 20, 320, 460);
self.view.frame = CGRectMake(0, 0, 320, 416);
私のdismissViewControllerAnimated:completionメソッドに(これらの値は5未満のiPhone用で、説明用です)。しかし、これで問題が解決するわけではありません。次のモーダル ビュー コントローラーを提示しようとすると、提示されたビューがステータス バーの高さ分だけ上に移動するからです。
この問題がどのように発生したかわかりません。私の疑いでは、セグエのどこかで、ナビゲーション コントローラの 1 つがステータス バーの存在を追跡できなくなっているのではないでしょうか (何らかの方法で新しいステータス バーにリンクされていますか?)。
編集: メイン ビューのスクリーンショット、モーダル解除後。[注: 下部に 20px の空白]