我试图在iPad上创建一个简单的模态对话框,无论是小型(UIModalPresentationFormSheet)还是较大的(UIModalPresentationPageSheet)设置,但无论我做什么,它们都会全屏显示(带标题栏)。 / p>
模式UIViewController是在界面构建器中创建的,我似乎无法为其指定大小。为UIViewController中包含的UIView指定较小的大小无效。
我做错了什么?什么可能会影响这个问题?可能是我设置modalPresentationStyle的时间吗?我已经尝试使用UINavigationController和没有,但我得到相同的结果。
答案 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,我现在看到在横向模式下我我获得一个覆盖大部分(但不是全部)屏幕的大弹出窗口,这就是我一直期待的。