2010-12-23 153 views
1

我在我的应用程序中只支持横向模式的主菜单。 我通过设置UIRootViewController::shouldAutorotateToInterfaceOrientation:... 实现了景观限制我还有一个肖像模式支持的场景。 因此,当我从另一个场景以纵向模式传递到主菜单时,出现问题:应用程序不会自动旋转到横向,并且我找不到手动旋转它的代码方法。UiViewController旋转问题

有没有解决方案?会很感激。

编辑:对不起,我忘了补充细节。 RootViewController对菜单和另一个场景很常见。更重要的是 - 这些场景是在一个共同的视图(我的应用程序使用OpenGL) 因此,在我从肖像场景进入菜单之前,我将UIRootViewController::shouldAutorotateToInterfaceOrientation:设置为仅针对横向返回YES。

回答

0

如果您有肖像支持其他场景通过另一个UIViewController的控制,那么您可以使用视图控制器的-shouldAutorotateToInterfaceOrientation:来定义其行为。在很多情况下,仅此一项就足够了。当然,如果你需要为一些视图控制器做一些奇特的旋转,但不是为其他视图控制器做旋转,那么事情会变得有点棘手。

+0

我停在这个解决方案:杀死我现有的RootViewController并创建一个新的旋转限制。似乎视图控制器不是设计用来在运行时更改自动旋转设置的。 – brigadir 2010-12-28 15:22:57

0

除了[UIDevice setOrientation:]之外,没有简单的方法可以做到这一点,它不向开发人员开放,导致Apple拒绝应用程序。

0

您可以将旋转应用到您的图层,这将创建完全相同的效果。

myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);