Ipad 为什么我的弹出窗口在iOS6上使用presentViewController:animated时出现倒置:

Ipad 为什么我的弹出窗口在iOS6上使用presentViewController:animated时出现倒置:,ipad,ios6,Ipad,Ios6,在iPad上基于TabBar的应用程序中,我需要显示模式弹出视图,我可以通过调用UIViewController来实现。presentViewController:animated:completion: 在iOS5上,这工作正常。但在iOS6上,当设备倒置时,弹出视图出现倒置。它从显示器顶部上下颠倒设置动画 当我说设备是倒置的时,我指的是景观左侧(按钮在左侧)和肖像向上(按钮在顶部)。在其他两个方向中,弹出窗口从底部向上设置动画,并且正如您所期望的那样,是右侧向上的 我在应用程序中使用的所有3

在iPad上基于TabBar的应用程序中,我需要显示模式弹出视图,我可以通过调用UIViewController来实现。presentViewController:animated:completion:

在iOS5上,这工作正常。但在iOS6上,当设备倒置时,弹出视图出现倒置。它从显示器顶部上下颠倒设置动画

当我说设备是倒置的时,我指的是景观左侧(按钮在左侧)和肖像向上(按钮在顶部)。在其他两个方向中,弹出窗口从底部向上设置动画,并且正如您所期望的那样,是右侧向上的

我在应用程序中使用的所有3个弹出视图都出现了问题,其中2个是UIViewController的子类,第3个是MFMailComposeViewController

我使用如下代码显示视图:

MyModalViewController * tmpModal = [[MyModalViewController alloc] init];
tmpModal.modalPresentationStyle = UIModalPresentationFormSheet;
tmpModal.contentSizeForViewInPopover =  CGSizeMake(350,450);

[self.tabBarController presentViewController:tmpModal
                                    animated:TRUE
                                  completion:^
                                        {


                                        }];
我已经将iOS6旋转委托方法添加到基于UIViewController的2视图中,但没有效果

即:

那一点帮助都没有


我怎么可能是唯一遇到此问题的人?

问题原来是在我的UITabBarController子类中。我意外地将getter方法改写为“interfaceOrientation”-我创建了一个同名的getter,但调用它就像(void)方法一样(甚至没有查看返回值)。该方法旨在更新包含当前方向的应用程序范围变量,我从一个名为viewDidRotate的方法调用它,该方法是UIDeviceOrientationDidChangeNotification的观察者

我将该方法改为“saveInterfaceOrientation”(并使其无效),问题就消失了

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}