How to prevent screen lock on my application with swift on iOS

How can I prevent screen lock only when using Navigation?

Waze has the option to do that, how can I do this in my App?


Solution 1:

Use this:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (legacy):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 and above:

UIApplication.shared.isIdleTimerDisabled = true

Make sure to import UIKit.

Here is the link to the documentation from developer.apple.com.

Solution 2:

For Swift 3.0 here are two options depending on where you want to invoke the code:

Inside AppDelegate.swift:

application.idleTimerDisabled = true

Outside AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true