UINavigationController和Autorotation

时间:2010-06-04 16:32:49

标签: iphone uinavigationcontroller autorotate

我正在使用UINavigationController来推送和弹出视图。导航栏已隐藏。

我有RootViewController,设置为自动旋转。它可见时效果很好。 我也有GalleryViewController。只需返回no即可禁用自动旋转。


我的问题是,当GalleryViewController在导航堆栈上时,RootViewController会停止响应它的自动旋转事件。


如果我在Portrait中,并且我旋转设备(在查看GalleryViewController时)然后点击后退按钮,它会将GalleryViewController从堆栈中弹出并显示RootViewController,但RootViewController没有像它应该的那样改变旋转。 / p>

我坚持使用方法-viewWillAppear并检查了UIDevice方向的状态。它为我提供了正确的设备方向。

顺便说一下,我也尝试在GalleryViewController中启用自动旋转。然后它正确旋转视图,但仍然不会旋转RootViewController。


似乎在使用导航控制器时,只有堆栈顶部会旋转。


问题:由于设备在调用-viewWillAppear时知道它处于正确的旋转状态,我可以强制它以某种方式更新吗?

-mark

1 个答案:

答案 0 :(得分:0)

而不是只返回YES,在RootViewController中返回(interfaceOrientaion == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||等等......)。

GalleryViewController中的

只返回一个我们认为是默认方向的方向。

当这样做时 - 一切都应该像你想要的那样工作。