我的 iPhone 应用程序在 iPad 上运行时显示一些奇怪的行为,以支持方向更改。
该应用程序以视图控制器(为了参数而将其称为视图 A)和导航控制器启动,并且 shouldAutorotateToInterfaceOrientation 仅针对纵向返回 YES。在导航控制器上,我推送一个视图控制器(视图 B),该控制器也仅针对纵向返回 YES。然后,我将另一个视图控制器(视图 C)推到支持所有旋转的导航控制器上,并根据要旋转到的方向调整屏幕上的项目。
当它在 iPhone 模拟器和设备上运行时,如果您在视图 C 上旋转到横向,然后点击后退按钮返回到视图 B,它会做正确的事情并将视图 B 切换回纵向模式。(在模拟器中,它甚至会自动将模拟器旋转回纵向。)
我遇到的问题是,当我在 iPad 模拟器和设备上执行完全相同的事件序列时,出现的视图 B 没有旋转回纵向,导航控制器仍然显示视图 C 的信息。然后,我点击后退按钮,视图保持不变,但导航控制器显示视图 B 正常(但仍处于横向模式)。然后,如果我再次点击后退按钮,视图 A 会出现在视图 B 导航栏项目下,最后再次点击后退让我进入视图 A 和导航栏 A 项目。
如果我在 iPad 上查看 B 并开始旋转,shouldAutorotateToInterfaceOrientation 会以 NO 触发,直到我达到纵向模式,然后一切恢复正常。
该应用程序使用最新发布的 iPhone SDK 版本构建,构建设置如下:iPhone Simulator 4.0 的 Base SDK、iPhone 的目标设备系列、iPhone OS 3.1.3 的 iPhone OS 部署目标。
有任何想法吗?