首先让我说,在应用程序打开后在iOS6中旋转视图时我没有遇到任何问题。只有在风景中第一次启动应用程序时,才会出现此问题。新的 shouldAutorotate 和 supportedInterfaceOrientations 方法在启动时都会被调用,但是没有调用任何旋转方法,例如 willRotateToInterfaceOrientation:duration:。 (shouldAutorotate总是返回YES,而supportedInterfaceOrientations总是返回UIInterfaceOrientationMaskAll)
在iOS5中,启动时对景观的“第一个”方向是自动处理的。有没有解释为什么设备不会在iOS6中调用第一个横向轮换? (我正在检查的视图控制器是窗口/应用程序委托的根控制器。)
提前感谢您对此的任何帮助和见解。
答案 0 :(得分:2)
我认为由于界面实际上没有旋转,因此没有调用该方法。
如果您想根据方向进行一些设置,您是否考虑过使用视图控制器的intefaceOrientation
属性?
答案 1 :(得分:2)
您现在应该使用viewWillLayoutSubviews
方法,而不是willRotateToInterfaceOrientation:duration:
。原因是因为无法保证在许多情况下调用willRotateToInterfaceOrientation:duration:
。
这在iOS6 release notes和其他地方都有说明。