如何从iPhone获取InterfaceOrientation(而不是DeviceOrientation)?

时间:2010-08-05 12:30:42

标签: iphone rotation orientation

我创建了一个modalviewcontroller,所有子视图都是由代码创建的。当我测试应用程序时,我发现了一个问题。然后问题的主要原因是应用程序不应该支持UpsideDown方向,但设备可能恰好处于该方向。

如果我:

  1. 将设备旋转为纵向,然后旋转至UpsideDown模式和presentModalView,modalviewcontroller中的子视图应与纵向方向相同。

  2. 将设备旋转到横向,然后转到UpsideDown模式和presentModalView,子视图应区别对待。

  3. 上述情况告诉我,我应该根据以前的InterfaceOrientation在modalviewcontroller中创建子视图。

    问题是:如何获取上一个屏幕的InterfaceOrientation?在这种情况下,获取设备方向将无济于事。

    PS:我正在写一个lib,我可能会给我的用户提供一个界面,以便从toInterfaceOrientation向我发送“-willRotateToInterfaceOrientation:duration:”但有关于如何在我的代码中获取方向的任何想法?

2 个答案:

答案 0 :(得分:9)

在任何UIViewController中,您都可以像这样访问属性interfaceOrientation:

if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {
    // do stuff
}

答案 1 :(得分:0)

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}