2

私はストーリーボードベースのアプリケーション(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 上に移動することです。フレームをリセットしてみました。また、ステータスバーを非表示にしようとしましたが、ステータスバーがナビゲーションバーを部分的に非表示にしました.これを解決するために、ステータスバーが表示された後にナビゲーションバーを非表示にしてから再度表示しようとしましたが、成功しませんでした

この問題を解決する方法を教えてください。

4

0 に答える 0