iOS 5和iOS 6中的自动旋转问题

4
我有一个iPad应用程序,必须支持iOS 5.0及更高版本。我有一个错误,在5.0/5.1上的表现与6.0不同。问题出在tabbarcontroller中的一个视图控制器,在通过navigationController推送完全屏幕视图的模态视图时。问题是,当处于全屏视图中时,如果旋转iPad,则底层的视图控制器(位于tabbarcontroller中的一个)不会旋转。现在让我分解一下iOS版本上的差异:
首先,这个受到质疑的viewController实现了shouldAutoRotateToInterfaceOrientation(返回YES),以及willRotateToInterfaceOrientation和willAnimateRotationToInterfaceOrientation。
在iOS 6.0中,我注意到旋转方法(willRotate...和willAnimate...)没有被调用,所以我注册了它来接收UIDeviceOrientationDidChangeNotification通知,并执行从两个Rotate方法中获取的代码,如果我收到该通知并且其他方法没有执行,则会修复iOS 6.0中的问题。
问题是,在5.0/5.1中,旋转方法(willRotate...和willAnimate...)确实被执行,但是视图没有旋转。如果“全屏视图”没有在此视图控制器之上展示,并且iPad被旋转,这两种方法将被执行,视图将相应地旋转。
请帮忙。提前致谢。
我尝试过除上述之外的其他事情。
我尝试检查UIDeviceOrientation并将其转换为UIInterfaceOrientation,并调用[self shouldAutorotateToInterfaceOrientation:xxx];视图仍然显示错误。

首先,支持方向的API在iOS中已经发生了变化,因此您可能希望尝试支持新旧两种方法。http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html - Snips
我已经阅读了iOS 6.0的发布说明,但没有实现该方法,因为我的问题出在5.0/5.1上。这个bug在iOS 6.0中已经修复(尽管我可能会为了保险起见实现新的方法)。 - HackyStack
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接