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

时间:2015-09-08 10:06:34

标签: ios swift

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

我有3个问题:

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

    UIApplication.sharedApplication().idleTimerDisabled = true

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

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

    UIApplication.sharedApplication().idleTimerDisabled = false

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

1 个答案:

答案 0 :(得分:6)

您想要在viewDidLoad

中禁用idleTimer
UIApplication.sharedApplication().idleTimerDisabled = true

当你的ViewController消失时,你想要重新启用idleTimer,所以把它放在viewDidDisappear

UIApplication.sharedApplication().idleTimerDisabled = false

您可以通过按电源按钮手动锁定屏幕,这是从模拟器手动锁定屏幕时发生的情况。执行此操作时,您的视图将消失,因此应禁用idleTimer。您可以通过在viewDidDisappear中添加打印语句来测试这种情况。

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