BP.*_*BP. 7 iphone ipad uiinterfaceorientation
我的iPhone应用程序在支持方向更改时在iPad上运行时会显示一些奇怪的行为.
该应用程序启动时使用视图控制器(为了参数而将其称为视图A)和导航控制器,并且shouldAutorotateToInterfaceOrientation仅为纵向返回YES.在导航控制器上,我按下一个视图控制器(视图B),它也仅为肖像返回YES.然后,我将另一个视图控制器(视图C)推送到支持所有旋转的导航控制器上,并根据要旋转的方向调整屏幕上的项目.
当在iPhone模拟器和设备上运行时,如果您在视图C上旋转到横向,然后点击后退按钮返回到视图B,它会做正确的事情并将视图B切换回纵向模式.(在模拟器中,它甚至可以自动将模拟器旋转回纵向.)
我遇到的问题是,当我在iPad模拟器和设备上执行完全相同的事件序列时,出现的视图B不会旋转回纵向,导航控制器仍然显示视图C的信息.然后,我点击后退按钮,视图保持不变,但导航控制器显示视图B的正常(但所有仍处于横向模式).然后,如果我再次点击后退按钮,视图B会出现在视图B导航栏项目下,最后再次点击后退我会看到带有导航栏A项目的视图A.
如果我在iPad上查看B并开始旋转,那么应该在没有触发的情况下使用NO来触发,直到我达到纵向模式,然后全部恢复正常.
该应用程序使用最新发布的iPhone SDK版本构建,并具有如下构建设置:iPhone模拟器4.0的基本SDK,iPhone的目标设备系列,iPhone OS 3.1.3的iPhone OS部署目标.
有任何想法吗?
苹果公司声明:
案例: UITabBarController 或 UINavigationController 中的所有子视图控制器在通用方向集上不一致。
响应:为了确保所有子视图控制器正确旋转,您必须为代表每个选项卡或导航级别的每个视图控制器实现shouldAutorotateToInterfaceOrientation。每个人都必须同意相同的方向才能发生旋转。也就是说,对于相同的方向位置,它们都应该返回 YES。
http://developer.apple.com/iphone/library/qa/qa2010/qa1688.html
您可以在导航控制器中而不是在各个视图中设置设备方向。然后您可以检查堆栈上的视图并根据结果进行旋转。通过这种方式,导航控制器也可以处理所有方向。
| 归档时间: |
|
| 查看次数: |
7783 次 |
| 最近记录: |