0

アプリデリゲートで UIViewController を self.window.rootViewController としてセットアップします。何らかの理由で、次のようなルート ビュー コントローラーからモーダルとしてサイン ビューを開く必要があります。

            self.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
            [self.window.rootViewController presentModalViewController:signViewC animated:NO];

標識ビューでデバイスの向きを変更すると、ルート ビュー コントローラーの向きが変更されず、標識ビューを閉じた後に誤った向きになります。標識ビューで方向を変更した場合、ルート ビューの方向を変更することはできますか?

ルートコントローラーに次を追加しました:

     - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
     {
        return YES;
     }

また、モーダル ビューを使用せずにルート ビューを回転すると、自動回転が機能します。

4

1 に答える 1

0

まず第一に、アプリ デリゲートからモーダルを提示するべきではありません。そのView Controllerを提示する必要があるかどうかを判断するために行っているチェックは、メインのView Controllerで行う必要があります。そこから、次のようにコードを呼び出してモーダルを表示する必要があります。

[self presentModalViewController:signViewC animated:NO]

そうすれば、メインのビュー コントローラーは閉じられず、ビュー スタックにプッシュされるだけで、回転通知に応答する必要があります。

それを試してみて、どうなるか教えてください。

編集

ModalPresentationStyle を取り出します。それがあなたを台無しにしているものです。

于 2012-10-04T14:03:30.687 に答える