我有一个 iPad 应用程序,它有一个UITabBarController
作为根控制器。从其中一个选项卡中,我有一个UIToolBar
包含一个UIBarButtonItem
,单击时会启动一个模态视图。
首次启动时(横向和纵向)模态视图以正确的大小显示,但是如果您旋转设备,则模态视图将扩展以填满屏幕 - 无论您从该点开始旋转设备多少。
我正在从标签栏启动模态视图,并且我已经ModalPresentationStyle
在要呈现的视图中设置了。
无论我将其设置为FormSheet
还是,这都会影响 ModalView PageSheet
。
有没有人遇到过类似的行为,如果有,您是如何解决的?
非常感谢
编辑
我还注意到,自 4.2 以来,当使用模态样式页面/表单表时,模态视图后面的视图不再变暗 - 我呈现的视图是错误的,还是这只是 4.2 的标准?
编辑 2
代码:在我的默认情况下UIViewController
,我只是简单地呈现模态视图,如下所示:
void HandleNewMsgButtonTouch(object sender, EventArgs e)
{
PresentModalViewController(new ComposeMsgView(), true);
}
在模态视图本身中,我在LoadView
覆盖中指定:
public override void LoadView()
{
base.LoadView ();
...
// initialser code related to the view
...
View.AutoresizingMask = UIViewAutoresizing.None;
ModalPresentationStyle = UIModalPresentationStyle.PageSheet;
ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
}
我也覆盖了ShouldAutoRotateToInterfaceOrientation
始终返回 true 。
无论我是否使用 Formsheet / Pagesheet,它们在首次启动时都会显示正确的宽度(无论是横向还是纵向 - 我知道 PageSheet 将填充纵向视图)但是在旋转时,模态视图将填充屏幕(如如果我用 FullScreen 呈现 ModalView)。