从 UINavigationController 弹出视图会改变设备方向

Posted

技术标签:

【中文标题】从 UINavigationController 弹出视图会改变设备方向【英文标题】:Popping view from UINavigationController changes device orientation 【发布时间】:2011-05-18 17:14:55 【问题描述】:

我在 iPad 上遇到了 UINavigationController 的问题。当应用程序以横向启动时,从导航控制器弹出顶部视图控制器会导致设备方向变为纵向,并且当视图变为可见并调整为纵向时,显示的视图会向下滑动。如果我发起呼叫或通过后退按钮自动完成呼叫,则没有区别。

当应用程序以纵向模式启动并且稍后设备变为横向时,我看不到相同的行为并且一切正常。

欢迎提供任何关于在何处查找内容以查找原因或解决方法建议以防止这种情况发生的指针。

谢谢你, 盎司

【问题讨论】:

【参考方案1】:

UINavigationController 的视图层次结构中的一个视图控制器没有覆盖shouldAutorotateToInterfaceOrientation: 方法,默认情况下该方法只为UIInterfaceOrientationPortrait 返回 YES - 因此,当特定的视图控制器出现在前面,它会自动旋转到它支持的方向。

您可以通过找到有问题的视图控制器并添加以下代码来解决此问题:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
    // Overriden to allow any orientation.
    return YES;

【讨论】:

我会检查并尝试一下。谢谢:) 是的,这就是斯科特的原因。非常感谢。

以上是关于从 UINavigationController 弹出视图会改变设备方向的主要内容,如果未能解决你的问题,请参考以下文章

从 UINavigationController 切换到 UISplitviewController

从UINavigationController中控制UINavigationItem内容

从 UINavigationController 设置 UITabBarItem 标题?

如何从 UINavigationController 隐藏 UINavigationBar?

UINavigationController 内的 UIPageController 从顶部偏移?

从 UiviewController 切换到 UiNavigationController