将纵向视图控制器推到横向视图控制器上?

Posted

技术标签:

【中文标题】将纵向视图控制器推到横向视图控制器上?【英文标题】:Pushing portrait view controller onto landscape view controller? 【发布时间】:2012-10-01 16:18:50 【问题描述】:

我正在尝试将仅纵向视图控制器推送到允许纵向或横向的控制器上。我遇到的问题是,如果用户处于横向模式并且我将新控制器推到它上面,它将保持横向模式并且看起来一切都搞砸了。当新的视图控制器被推上时,如何强制将方向更改为纵向?

【问题讨论】:

【参考方案1】:

KDaker 的回答是正确的,但您可以考虑的另一个选择是,当您的方向不是您想要的时,您是否可以限制导航。这不一定是一个好主意,但在某些情况下它可以很好地工作。例如,如果您有一个视频,当旋转到横向时变成全屏并覆盖您的导航返回按钮,直到它返回到纵向。

【讨论】:

【参考方案2】:

ios 5 和任何你不能“强制”从一个视图到另一个视图的方向之前。您可以仅支持项目的一种方向,但随后允许自动旋转。因此,在您的情况下,您只能允许自动旋转并等待用户旋转设备。

在 iOS 6 中,他们改变了方向处理的工作方式,变得更加灵活。你现在有这些方法:

- (NSUInteger)supportedInterfaceOrientations

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

使用这些,您可以以您喜欢的任何方向显示您的视图控制器,前提是前一种方法支持它。

希望这会有所帮助。

【讨论】:

以上是关于将纵向视图控制器推到横向视图控制器上?的主要内容,如果未能解决你的问题,请参考以下文章

视图控制器处于横向模式,但我从纵向模式获取框架?

主视图控制器在点击项目并快速将方向从纵向更改为横向后消失

UIView 旋转,模态视图横向和纵向,父级无法渲染

一个视图控制器,纵向和横向两个视图

如何始终将视图控制器保持在纵向模式?

加载不同的纵向/横向 UIViews