我的应用只需要Portrait和PortraitUpsideDown。在目标的部署信息中,我只检查了这两个。在Info.plist中,所有四个都可用。当我从Info-plist中删除Landscapes时,Xcode不会让我构建,说我需要支持所有四个。现在,在通过TestFligh运行应用程序后,它仍会返回Landscape,尽管在部署信息中未选中。我怎么能摆脱这个?
答案 0 :(得分:1)
你可以"允许"您设置中的所有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。