我有一个必须支持 iOS 5.0 及更高版本的 iPad 应用程序。我有一个错误,它在 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]; 视图仍然显示错误。