3

ランドスケープの左右の向きをサポートする iPad アプリケーションがあります。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Overriden to allow any orientation.
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

呼び出して、View Controller をモーダル ビューとして表示しています。

childController.modalPresentationStyle = UIModalPresentationPageSheet;
    childController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[parentController presentViewController:childController animated:childController.animated completion:^{
        childController->isBeingShowed = FALSE;

1 つのモーダル ビューを表示している場合: RootViewController(FullScreen)->SelectOption(500, 500) 回転は正常に機能し、選択オプション ビュー コントローラーは元のサイズになります。

追加のモーダル ビューを表示している場合: RootViewController(FullScreen)->SelectOption(500, 500)->Additional options(300, 300)、回転後、SelectOption ビュー コントローラのサイズがフル スクリーンに変更され、AdditionalOptions ビュー コントローラは指定されたサイズのままです.

4

1 に答える 1

1

ちょっとしたコツで問題が解決しました。

それらの問題の根本は、最初のモーダル ビューを PageSheet として開いていることです。最初のモーダル ビューから 2 番目のモーダル ビューを開くと、MainView(FullScreen)、モーダル ビューがページ シートとして開かれ、2 番目のページ シートが前のページから開かれました。ページシート。このアーキテクチャは、回転に関する問題を引き起こしました。

トリック: 2 番目のモーダル ビューを FormSheet として開き、座標を再計算して PageSheet 座標系に対応させます。これで、MainView->PageSheet->FormSheet のようになり、問題が修正されました。

コードがなくてすみません。

于 2013-02-27T08:50:38.107 に答える