我正在开发一个应用程序,除了一个视图控制器外,我需要所有的视图控制器都是纵向显示。而这个特殊的视图控制器需要能够旋转到手机所处的任何方向。
为了实现这一点,我使用模态呈现它(不嵌入在 NavigationController 中)。
因此,我的结构例如如下:
- window - 纵向显示
- root view controller(UINavigationController - 纵向显示)
- home view controller(UIViewController - 纵向显示)
- details view controller(UIViewController - 纵向显示)
- .
- .
- .
- modal view controller(UIVIewController - 所有方向)
- home view controller(UIViewController - 纵向显示)
- root view controller(UINavigationController - 纵向显示)
现在,每当我以横向位置关闭我的模态视图控制器时,即使它不支持该方向,我的父视图控制器也会旋转。
应用程序中的所有 UIViewControllers
和 UINavigaionControllers
继承自相同的通用类,其中包含这些方法的实现:
override func supportedInterfaceOrientations() -> Int
{
return Int(UIInterfaceOrientationMask.Portrait.toRaw())
}
我的模态视图控制器再次覆盖了这个方法,代码如下:
override func supportedInterfaceOrientations() -> Int
{
return Int(UIInterfaceOrientationMask.All.toRaw())
}
更新1
看起来这只发生在iOS 8测试版上。 是否有人知道关于视图控制器旋转是否有所改变,还是这只是测试版中的一个错误?