我有一个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];视图仍然显示错误。
首先,这个受到质疑的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];视图仍然显示错误。