Swift 3.0 supportedInterfaceOrientations

Swift 3.0 中设置去掉了之前版本中设置当前控制器支持的旋转方向的方法:

 func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .portrait
}

取而代之的是给UIViewController增加了一个属性:

// Returns interface orientation masks.
@available(iOS 6.0, *)
open var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { get }

你可以重写该属性的setget方法, 来设置控制器支持的旋转方向, 例如:

private var _orientations = UIInterfaceOrientationMask.portrait
override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
get { return self._orientations }
set { self._orientations = newValue }
}

这样就可以在不同的时间来设置不同的值.
类似这样的方法还有很多, 例如:preferredStatusBarStyle, prefersStatusBarHidden, shouldAutorotate, preferredInterfaceOrientationForPresentation等,在 Objective-C 中, 有如下定义的:

#if UIKIT_DEFINE_AS_PROPERTIES

Swift中都是这种实现方式.

参考链接:stackoverflow

你可能感兴趣的:(Swift 3.0 supportedInterfaceOrientations)