禁用自动旋转

问题描述:

我是Xcode和Swift的新手。 (Xcode 7.2,Swift 2.0)我的第一个项目包含一个导航控制器和3个其他视图控制器:A,B和C.我不希望任何视图自动旋转。我希望A和B永久在肖像和C永久在风景。在常规 - >部署信息 - >设备方向中,我选中了纵向和横向。在每个VC中,我在viewDidLoad中都有这样的代码。禁用自动旋转

let value = UIInterfaceOrientation.LandscapeLeft.rawValue 
UIDevice.currentDevice().setValue(value, forKey: "orientation") 

和以下的方法...

override func shouldAutorotate() -> Bool { 
    return false 
} 

每个视图在所需方向开出。然而,织物保持自动旋转。

第一种方式:如果您不想旋转项目中的任何VC,只需取消选中“目标”窗口中的“设备方向”属性即可。 enter image description here

方式二:如果你正在使用的UINavigationController,如果你想打电话给shouldAutorotate()功能,你应该在你的customNavigationController创建自定义的UINavigationController类,导入下面的代码,

这样,类,

override func shouldAutorotate() -> Bool { 
    return false 
} 

以这种方式,您可以更改为anoth呃NavigationController的viewControllers允许oriantations

你不能做你所描述的。导航控制器中不同深度的不同视图控制器不能有不同的固定方向。它不受支持。

,得到视图控制器从以前视图控制器不同的固定取向的唯一方法是作为呈现视图控制器,而不是一个视图控制器到导航控制器的堆栈。

另外,该线路:

UIDevice.currentDevice().setValue(value, forKey: "orientation") 

可能会得到您的应用程序在App Store的拒绝。您不能像这样设置设备的方向。