iOS如何在每个UIViewController上启用和禁用旋转?

问题描述

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

更新

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

解决方法

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

例:

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

我怎样才能做到这一点?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...