4

バグは iOS 4.2 にもありましたが、iOS 4.3 の iPad で横方向のみをサポートするアプリケーションを作成しています。

アプリケーションのいくつかの場所で、UIViewControllers をモーダル ビューとして表示しています。それらはすべて、次のパターンを使用して表示されます。

viewController.modalPresentationStyle = UIModalPresentationFormSheet;
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:viewController animated:YES];

ほとんどの場所では、期待どおりに機能します。モーダル フォーム シートは、画面の下から上にスライドします。

ただし、2 つのケースでは、モーダル フォーム シートが画面の左下からスライドインします。フォーム シートがほぼ右側にスライドし、フォーム シートの下部が見えなくなります。テキスト フィールドにフォーカスを置いてオンスクリーン キーボードを表示すると、フォーム シートは画面の上部中央に移動します。

XIB のシミュレートされたメトリックが動作に影響を与えるとは思いませんが、それらすべて (呼び出しUIViewController selfとモーダル ビュー コントローラーの両方viewController) の向きを横に設定しました。

これら 2 つのモーダル フォーム シートが他のフォーム シートと異なる動作をしている理由はありますか?

4

2 に答える 2

0

viewController が NavigationController に埋め込まれている場合、navController shouldAutotorate もランドスケープに設定されていることを確認してください。

于 2012-07-21T08:47:36.927 に答える
0

ここでは、shouldAutorotate 関数で横向きを返さないと思うので、横向きの左/右として表示する場合は、このコードを使用します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight||interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    // return YES;
}

これを試してみてください..

于 2012-07-21T07:16:59.227 に答える