1

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

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


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


如果我处于纵向模式,并且我旋转设备(在查看 GalleryViewController 时)然后点击后退按钮,它会将 GalleryViewController 从堆栈中弹出并显示 RootViewController,但 RootViewController 并没有按应有的方式更改旋转。

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

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


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


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

-标记

4

1 回答 1

0

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

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

完成后 - 一切都应该像你想要的那样工作。

于 2011-10-21T10:38:27.023 回答