2011-01-12 18 views
3

私は、小さな(UIModalPresentationFormSheet)または大きな(UIModalPresentationPageSheet)設定のどちらかで、iPad上で簡単なモーダルダイアログを作成しようとしていますが、私が何をしていてもフルスクリーン(タイトルバー付き)で表示されます。モーダルUIViewControllerは常にiPad上でフルスクリーン表示されます。どうして?

インターフェイスのビルダーでモーダルUIViewControllerが作成されましたが、サイズを指定できないようです。 UIViewController内に含まれるUIViewのサイズを小さく指定しても効果はありません。

私は間違っていますか?この問題に何が影響するか?私はmodalPresentationStyleを設定しているタイミングですか?私は両方のUINavigationControllerを使用して、試してみましたが、同じ結果を得ています。

答えて

3

私はこれを理解しました。私はUIModalPresentationPageSheetを使用していたことが判明しました。ポートレートモードでは常にフルスクリーンになります。私のモーダルUIViewControllerはshouldAutorotateToInterfaceOrientationに応答していなかったので、モーダルポップアップが機能していなかった理由は、縦向きを強制していました。単純にYESを返し、私のモーダルのUIViewControllerにshouldAutorotateToInterfaceOrientationハンドラを追加することにより

、私は今、風景モードでは、私はは何Iで画面のほとんど(すべてではない)をカバーし、大きなポップアップを取得していますことを確認期待していた。

5

親ビューコントローラmodalPresentationStyleを設定してから、presentModalViewController:animatedを呼び出す前にを設定する必要があります。

myViewController = // create your new controller if needed 
myViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
myViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
// "self" is the parent ViewController 
[self presentModalViewController:myViewController animated:YES] 
+0

これは、階層全体がモーダルであることを意味するのでしょうか?私が理解しているように、私のルート(トップ)UIViewControllerはノーマルで、モーダルではないビューです。私はpresentModalViewControllerでそれを表示する必要があります:アニメーションも? – ldoogy

+0

いいえ、parentは非モーダルUIViewControllerです。 – Felix

関連する問題