我正在使用UINavigationController来推送和弹出视图。导航栏已隐藏。
我有RootViewController,设置为自动旋转。它可见时效果很好。 我也有GalleryViewController。只需返回no即可禁用自动旋转。
我的问题是,当GalleryViewController在导航堆栈上时,RootViewController会停止响应它的自动旋转事件。
如果我在Portrait中,并且我旋转设备(在查看GalleryViewController时)然后点击后退按钮,它会将GalleryViewController从堆栈中弹出并显示RootViewController,但RootViewController没有像它应该的那样改变旋转。 / p>
我坚持使用方法-viewWillAppear并检查了UIDevice方向的状态。它为我提供了正确的设备方向。
顺便说一下,我也尝试在GalleryViewController中启用自动旋转。然后它正确旋转视图,但仍然不会旋转RootViewController。
似乎在使用导航控制器时,只有堆栈顶部会旋转。
问题:由于设备在调用-viewWillAppear时知道它处于正确的旋转状态,我可以强制它以某种方式更新吗?
-mark
答案 0 :(得分:0)
而不是只返回YES,在RootViewController中返回(interfaceOrientaion == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||等等......)。
GalleryViewController中的只返回一个我们认为是默认方向的方向。
当这样做时 - 一切都应该像你想要的那样工作。