如何以编程方式为特定视图控制器禁用/启用睡眠模式?

cod*_*ude 3 ios swift

我正在构建一个应用程序,并且在一个特定的viewController我想要禁用睡眠模式.

我有3个问题:

  1. viewDidLoad在特定视图控制器的方法中使用此代码:

    UIApplication.sharedApplication().idleTimerDisabled = true

    阅读以前有关此问题的问题,我确信这是正确的代码.但这是代码中正确的"位置"吗?

  2. 我应该在其他视图控制器上使用以下代码(或者这不是必需的,它是否会在没有?的情况下转为默认值):

    UIApplication.sharedApplication().idleTimerDisabled = false

  3. 在模拟器中,我使用硬件 - >锁来模拟锁屏.你认为这总是会锁定屏幕吗?或者,如果我的代码正确,它是否会锁定(睡眠模式)我的应用程序在特定的视图控制器上?(现在它只是将它锁定在模拟器中).如何模拟用户的空闲时间?

Adr*_*ian 8

您将要禁用idleTimer viewDidLoad

UIApplication.shared.isIdleTimerDisabled = true
Run Code Online (Sandbox Code Playgroud)

当yourViewController消失时,你会想要重新启用idleTimer,所以把它放进去 viewDidDisappear

UIApplication.shared.isIdleTimerDisabled = false
Run Code Online (Sandbox Code Playgroud)

您可以通过按电源按钮手动锁定屏幕,这是从模拟器手动锁定屏幕时发生的情况.执行此操作时,您的视图将消失,因此应禁用idleTimer.你可以通过输入print语句来测试那种情况viewDidDisappear.

你在iOS中设置idleTimer的方式是Settings->General->Auto-Lock指定屏幕锁定之前应该经过的时间长度.最短的间隔是1分钟.如果不管它并且不按电源按钮,则应禁用idleTimer.