我有一个UIViewController,我想在不同情况下禁用或启用屏幕旋转

例子:

if flag {
   rotateDevice = false
}
else {
   rotateDevice = true
}

我怎样才能做到这一点?

最佳答案

我有答案。
AppDelegate上,如果您旋转设备,按下ViewController等,则此函数始终会调用

更新 swift 3/4

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask
{
    return self.restrictRotation
}
self.restrictRotation是一个自定义参数。

使用方法:

在Appdelegate中:
 var restrictRotation:UIInterfaceOrientationMask = .portrait

在ViewController中:

调用方法ViewDidLoad或viewWillAppear时。我们将像这样更改:
(UIApplication.shared.delegate as! AppDelegate).restrictRotation = .all

然后将在AppDelegate上调用此方法。
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask

关于ios - iOS。如何在每个UIViewController上启用和禁用旋转?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38969419/

10-10 20:53