私はストーリーボードベースのアプリケーション(iPhone)に取り組んでいます。アプリケーションには、開始するためのナビゲーション コントローラーがあります。既存のアプリケーションをそれに統合しています。したがって、ボタンをクリックして NIB ファイルをロードする必要があります。
NSBundle *someBundle = [NSBundle category_bundle ];
MainWindow *aViewController = [[MainWindow alloc]
initWithNibName:nibName
bundle:someBundle];
[self.navigationController pushViewController:aViewController animated:YES];
その後、既存のアプリケーションは別の VC をロードします。
[[self navigationController] pushViewController:mySecondView animated:YES];
このビューも NIB からのものです。
次に、このビューはシングルトンを使用して (最初のステップで読み込まれた) MainWindow のインスタンスを取得し、モーダル ビューを表示するように要求します。「悪いデザイン」ですが、これは既存のアプリケーションであり、統合を明日提供する必要があるため、変更できません。
モーダルは次のように表示されます -
[self presentModalViewController:aModal animated:YES];
モーダルをランドスケープで開いています。そのために、viewWillAppear でこのコードを使用しています。
[UIApplication sharedApplication].statusBarOrientation = self.interfaceOrientation;
そしてviewDidDisappear
if (SYSTEM_VERSION_LESS_THAN(@"5.0")) {
[UIApplication sharedApplication].statusBarOrientation = self.parentViewController.interfaceOrientation;
} else {
[UIApplication sharedApplication].statusBarOrientation = self.presentingViewController.interfaceOrientation;
}
質問:
問題は、モーダル ポップアップが閉じられた後、MainWindow の UIView が 20px 上に移動することです。フレームをリセットしてみました。また、ステータスバーを非表示にしようとしましたが、ステータスバーがナビゲーションバーを部分的に非表示にしました.これを解決するために、ステータスバーが表示された後にナビゲーションバーを非表示にしてから再度表示しようとしましたが、成功しませんでした
この問題を解決する方法を教えてください。