UIModalPresentationCurrentContext和willRotateToInterfaceOrientation

时间:2013-03-27 17:18:34

标签: ios uiviewcontroller uiinterfaceorientation autorotate

我的主视图控制器上有一个模态视图控制器(我们称之为弹出视图控制器)。在某些时候,我需要看到弹出窗口后面的主视图控制器。因此,在呈现弹出视图控制器之前,我将modalPresentationStyle属性设置为UIModalPresentationCurrentContext

因此,当弹出视图控制器以模态方式呈现时,当设备方向发生变化时,不会调用willRotateToInterfaceOrientation:didRotateFromInterfaceOrientation:方法。 supportedInterfaceOrientations被称为amd返回的好值。启用旋转,正确设置支持的方向。如果我将'modalPresentationStyle'更改为默认值,弹出的conIt实际上有效,一切正常,但显然我没有看到主视图控制器。

我应该补充一点,主视图控制器只支持portait,而它上面的弹出窗口支持所有方向。

在iOS 5.1设备上,正确调用willRotatedidRotate方法。仅在iOS 6设备上它们不是。

是否有人遇到类似的问题或者已经需要在单个方向视图控制器上方以模态方式显示透明的多方向视图控制器?

1 个答案:

答案 0 :(得分:0)

这样做......

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {
    UIDevice* thisDevice = [UIDevice currentDevice];
    if (thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
        return true;
    }
    else
    {
        return interfaceOrientation == UIDeviceOrientationLandscapeLeft;
    }
}