Swift 3.0 中设置去掉了之前版本中设置当前控制器支持的旋转方向
的方法:
func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return .portrait
}
取而代之的是给UIViewController
增加了一个属性:
// Returns interface orientation masks.
@available(iOS 6.0, *)
open var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { get }
你可以重写该属性的set
和get
方法, 来设置控制器支持的旋转方向, 例如:
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