【发布时间】:2014-08-05 10:49:21
【问题描述】:
我正在开发这个应用程序,我需要我的所有视图控制器,但只有一个是纵向的。 一个特别的单视图控制器,我需要它能够旋转到手机所处的任何方向。
为此,我以模态方式呈现它(未嵌入到 NavigationController 中)
所以(例如)我的结构是这样的:
- 窗口 - 纵向
- 根视图控制器 (UINavigationController - Portrait)
- 主视图控制器 (UIViewController - Portrait)
- 详细视图控制器 (UIViewController - Portrait)
- 。
- .
- .
- 模态视图控制器(UIVIewController - 全部)
- 主视图控制器 (UIViewController - Portrait)
- 根视图控制器 (UINavigationController - Portrait)
现在,当我在横向位置关闭模态视图控制器时,我的父视图控制器也会旋转,即使它不支持该方向。
应用程序中的所有UIViewControllers 和UINavigaionControllers 都继承自实现了这些方法的相同通用类:
override func supportedInterfaceOrientations() -> Int
{
return Int(UIInterfaceOrientationMask.Portrait.toRaw())
}
我的模态视图控制器再次覆盖了这个方法,它看起来像这样:
override func supportedInterfaceOrientations() -> Int
{
return Int(UIInterfaceOrientationMask.All.toRaw())
}
更新 1
这似乎只发生在 iOS8 Beta 上。 有人知道视图控制器的旋转是否发生了变化,或者这只是测试版中的一个错误?
【问题讨论】:
-
我也有类似的问题,并且有补丁,见stackoverflow.com/questions/25769068/…
标签: ios iphone uiviewcontroller swift screen-rotation