2016-03-20 68 views
0

我是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 
} 

每個視圖在所需方向開出。然而,織物保持自動旋轉。

回答

-1

第一種方式:如果您不想旋轉項目中的任何VC,只需取消選中「目標」窗口中的「設備方向」屬性即可。 enter image description here

方式二:如果你正在使用的UINavigationController,如果你想打電話給shouldAutorotate()功能,你應該在你的customNavigationController創建自定義的UINavigationController類,導入下面的代碼,

這樣,類,

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

以這種方式,您可以更改爲anoth呃NavigationController的viewControllers允許oriantations

1

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

,得到視圖控制器從以前視圖控制器不同的固定取向的唯一方法是作爲呈現視圖控制器,而不是一個視圖控制器到導航控制器的堆棧。

另外,該線路:

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

可能會得到您的應用程序在App Store的拒絕。您不能像這樣設置設備的方向。