在横向启动时,iOS6旋转方法未调用

时间:2012-10-15 14:02:03

标签: objective-c ios5 rotation ios6

首先让我说,在应用程序打开后在iOS6中旋转视图时我没有遇到任何问题。只有在风景中第一次启动应用程序时,才会出现此问题。新的 shouldAutorotate supportedInterfaceOrientations 方法在启动时都会被调用,但是没有调用任何旋转方法,例如 willRotateToInterfaceOrientation:duration:。 (shouldAutorotate总是返回YES,而supportedInterfaceOrientations总是返回UIInterfaceOrientationMaskAll)

在iOS5中,启动时对景观的“第一个”方向是自动处理的。有没有解释为什么设备不会在iOS6中调用第一个横向轮换? (我正在检查的视图控制器是窗口/应用程序委托的根控制器。)

提前感谢您对此的任何帮助和见解。

2 个答案:

答案 0 :(得分:2)

我认为由于界面实际上没有旋转,因此没有调用该方法。

如果您想根据方向进行一些设置,您是否考虑过使用视图控制器的intefaceOrientation属性?

答案 1 :(得分:2)

您现在应该使用viewWillLayoutSubviews方法,而不是willRotateToInterfaceOrientation:duration:。原因是因为无法保证在许多情况下调用willRotateToInterfaceOrientation:duration:

这在iOS6 release notes和其他地方都有说明。