在 swift 中禁用 xib 的屏幕旋转
Disable screen rotation of a xib in swift
我在 swift 中创建了一个动态框架,其中每当收到 voip 通知时,我的框架内的 .xib 文件就会打开。
我只想将屏幕方向限制为纵向模式,但我不知道该怎么做。
我尝试了以下方法,但这些方法只能在 UIViewController 中使用,而不能在 UIView 中使用。
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
经过这么长时间我终于找到了解决办法。
我在我打开 .xib 文件的框架中创建了一个视图控制器 class。
我在新创建的视图控制器中包含了以下功能
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
现在在打开 .xib 之前,我在当前视图控制器的顶部显示这个 viewcontroller 即我从它自己的文件中调用它 viewcontroller,有点像这样
self.navCtrl?.present(self, animated: false, completion: nil)
通过这样做,我的 .xib 文件在我的框架 viewcontroller 而不是应用程序的视图控制器上方打开。要关闭此 viewcontroller,只需使用
dismiss(animated: false, completion: nil)
因此问题解决了。
我在 swift 中创建了一个动态框架,其中每当收到 voip 通知时,我的框架内的 .xib 文件就会打开。 我只想将屏幕方向限制为纵向模式,但我不知道该怎么做。
我尝试了以下方法,但这些方法只能在 UIViewController 中使用,而不能在 UIView 中使用。
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
经过这么长时间我终于找到了解决办法。 我在我打开 .xib 文件的框架中创建了一个视图控制器 class。 我在新创建的视图控制器中包含了以下功能
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
现在在打开 .xib 之前,我在当前视图控制器的顶部显示这个 viewcontroller 即我从它自己的文件中调用它 viewcontroller,有点像这样
self.navCtrl?.present(self, animated: false, completion: nil)
通过这样做,我的 .xib 文件在我的框架 viewcontroller 而不是应用程序的视图控制器上方打开。要关闭此 viewcontroller,只需使用
dismiss(animated: false, completion: nil)
因此问题解决了。