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

IosSwiftLockingScreen

Ios Problem Overview


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?

Ios Solutions


Solution 1 - Ios

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 - Ios

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

Solution 3 - Ios

Swift 4

in AppDelegate.swift file, add the following line inside application function:

application.isIdleTimerDisabled = true
        

Solution 4 - Ios

You can use my little lib Insomnia (Swift 3, iOS 9+) - another nice feature is that you can prevent from sleeping only when charging.

The idleTimerDisabled soultion is okay but you have to remember to set it to false afterwards.

Solution 5 - Ios

If you have more advanced case you can use our small project: ScreenSleepManager or if it's just about particular ViewControllers - use Insomnia as pointed earlier. Manual dealing with idleTimerDisabled almost always caused me some issues (like forgot to re-set to false or handle multiple (nested) modules trying to set it).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionalvarogaliaView Question on Stackoverflow
Solution 1 - IosatwalshView Answer on Stackoverflow
Solution 2 - IosCrashalotView Answer on Stackoverflow
Solution 3 - IoskavehmbView Answer on Stackoverflow
Solution 4 - IosnsmemeView Answer on Stackoverflow
Solution 5 - IosDev_ILView Answer on Stackoverflow