2010-06-04 59 views
1

我正在使用UINavigationController来推送和弹出视图。导航栏是隐藏的。UINavigation Controller和Autorotation

我有RootViewController,它被设置为自动旋转。当它可见时它工作得很好。 我也有GalleryViewController。它仅通过返回no来禁用自动旋转。


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


如果我在肖像,我旋转设备(同时观看GalleryViewController),然后点击返回按钮,它会弹出的GalleryViewController出栈,并揭示了RootViewController的,但RootViewController的没有改变的旋转,因为它应该有。

我卡在方法-viewWillAppear中,并检查UIDevice方向的状态。它给了我设备的正确方向。

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


看来,当使用导航控制器,只有堆栈的顶部得到旋转。


问题:由于设备知道它在当-viewWillAppear被称为正确的旋转,我可以强制它以某种方式更新?

-mark

回答

0

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

在GalleryViewController中只返回一个方向,这在我们看来是默认方向。

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