我的应用中有多个viewControllers,我想将某些视图仅限于纵向方向。我通过覆盖如下的
覆盖了shouldAutoRotate和supportedInterfaceOrientations来实现这一点 override func shouldAutorotate() -> Bool {
return false
}
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientation.Portrait.rawValue)
}
我对UICollectionView采用了同样的方法,但它似乎没有用。我想知道这是否是实现它的正确方法。对此的帮助将非常感激。提前谢谢!
答案 0 :(得分:0)
在iOS 8或更高版本中,如果要控制每个视图控制器的允许方向:
确保"支持的界面方向"在change_column
中允许您希望应用能够使用的所有方向。 (或者只是检查正确的"设备方向"在Info.plist
文件的Xcode UI界面中
每个视图控制器,实现(示例限制为纵向):
Info.plist
如果您的视图控制器嵌入在另一个视图控制器(如UINavigationController或UITabBarController或两者)中,您可以遇到的问题。
我怀疑这是你所描述的情况。
如果是这样,所涉及的所有视图控制器都需要实现override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
方法。 AFAIK,如果您在视图控制器上方有一个UINavigationController,则需要子类并使用实现的方法创建自己的导航控制器。