UISplitViewController中的PresentModalViewController:横向模式中的奇怪行为

时间:2011-01-04 11:48:41

标签: cocoa-touch xamarin.ios

我一直在使用PresentModalViewController,从来没有遇到任何问题。但是当从UISplitViewController托管的任何控制器中显示模态控制器时,我会得到奇怪的定位错误。

在我的表视图(它是UISplitView的根控制器)中,当触摸一个单元格时,我调用:

MyController oModal = new MyController();
oModal.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
oModal.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
this.PresentModalViewControll(oModal, true);

如果iPad是纵向的,一切都还可以。但是,如果它处于横向,则模态控制器会淡入,但其方向不正确。然后,在淡入完成后,突然翻转90度并调整到正确的方向。 我已经覆盖了ShouldAutoRotateToInterfaceOrientation(),所以不可能。

想法?

1 个答案:

答案 0 :(得分:0)

我碰到了这个并且有一个解决方法,而不是一个真正的解决方案。问题是,你正在呈现你的模态控制器的UIViewController(在你的代码“this”中)正在响应它的属性interfaceOrientation的错误方向。它发生在我身上,我不确定为什么。解决方法是在UIViewController(“this”)中为属性添加自定义getter,如下所示:

-(UIDeviceOrientation)interfaceOrientation
{
    return [[UIDevice currentDevice] orientation];
}

我从this post得到了这个想法。我认为问题是视图控制器没有正确嵌入到视图控制器层次结构中,但还没有弄清楚如何。希望这可以帮助。