Modal UIViewController总是在iPad上全屏显示。为什么?

时间:2011-01-12 18:11:24

标签: iphone ios uiviewcontroller

我试图在iPad上创建一个简单的模态对话框,无论是小型(UIModalPresentationFormSheet)还是较大的(UIModalPresentationPageSheet)设置,但无论我做什么,它们都会全屏显示(带标题栏)。 / p>

模式UIViewController是在界面构建器中创建的,我似乎无法为其指定大小。为UIViewController中包含的UIView指定较小的大小无效。

我做错了什么?什么可能会影响这个问题?可能是我设置modalPresentationStyle的时间吗?我已经尝试使用UINavigationController和没有,但我得到相同的结果。

2 个答案:

答案 0 :(得分:5)

在调用modalPresentationStyle之前,您必须在父ViewController 中设置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]

答案 1 :(得分:3)

我已经想到了这一点。事实证明我使用的是UIModalPresentationPageSheet,它总是在纵向模式下以全屏 。因为我的模态UIViewController没有响应shouldAutorotateToInterfaceOrientation,所以它强制使用纵向,这就是为什么我认为模态弹出窗口无效。

只需在我的模态UIViewController中添加一个shouldAutorotateToInterfaceOrientation处理程序,返回YES,我现在看到在横向模式下我获得一个覆盖大部分(但不是全部)屏幕的大弹出窗口,这就是我一直期待的。