您可以在设置中“允许”所有4个选项,但可以自己控制方向。
我会创建一个自定义的UINavigation控制器,里面有这个(Swift):
import UIKit
class MyCustomNavigationController: UINavigationController {
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return (visibleViewController?.supportedInterfaceOrientations())!
}
override func shouldAutorotate() -> Bool {
return (visibleViewController?.shouldAutorotate())!
}
}
然后,在要强制进入特定方向的每个ViewControllers中,包括以下内容:
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Landscape // Or portrait
}
override func shouldAutorotate() -> Bool {
return true
}
这样,您可以允许所有方向,但仍保持对视图本身的控制。如果希望所有视图都相同(例如风景),可以为所有视图控制器创建一个自定义基类,其中包含第二组代码,并且不必在每个单独的VC中都包含它。