0

我在 swift 中创建了一个动态框架,每当 voip 通知到达时,我的框架内的 .xib 文件就会打开。我只想将屏幕的方向限制为纵向模式,但我不知道该怎么做。

我尝试了以下方法,但这些只能在 UIViewController 中使用,而不能在 UIView 中使用。

override var shouldAutorotate: Bool {
    return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .portrait
}
4

1 回答 1

0

经过这么长时间,我终于想出了解决方案。我在我的框架中创建了一个视图控制器类,我从中打开 .xib 文件。我在新创建的视图控制器中包含了以下功能

override var shouldAutorotate: Bool {
    return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .portrait
}

现在在打开 .xib 之前,我在当前视图控制器的顶部显示了这个视图控制器,即我从它自己的文件中调用了这个视图控制器,有点像这样

self.navCtrl?.present(自我,动画:假,完成:无)

通过这样做,我的 .xib 文件在我的框架的视图控制器而不是应用程序的视图控制器上方打开。要关闭此视图控制器,只需使用

dismiss(animated: false, completion: nil)

因此问题解决了。

于 2018-12-12T10:28:31.837 回答