Как отключить блокировку экрана только при использовании навигации?
У Waze есть возможность сделать это, как я могу сделать это в своем приложении?
Использовать это:
Цель-C:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Swift (устаревший):
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3 и выше:
UIApplication.shared.isIdleTimerDisabled = true
Обязательно импортируйте UIKit
.
Вот ссылка на документацию с сайта apple.developer.com.
UIApplication.sharedApplication().idleTimerDisabled = true
UIApplication.shared.idleTimerDisabled = true
UIApplication.shared.isIdleTimerDisabled = true
Для Swift 3.0 есть два варианта в зависимости от того, где вы хотите вызвать код:
Внутри AppDelegate.swift:
application.idleTimerDisabled = true
За пределами AppDelegate.swift:
UIApplication.shared().isIdleTimerDisabled = true
источник
UIApplication.shared.isIdleTimerDisabled = false
Swift 4
в файле AppDelegate.swift добавьте следующую строку внутри функции приложения :
источник
Вы можете использовать мою маленькую библиотеку Insomnia (Swift 3, iOS 9+) - еще одна приятная особенность заключается в том, что вы можете запретить спать только во время зарядки.
idleTimerDisabled
Soultion в порядке , но вы должны помнить , чтобы установить его наfalse
потом.источник
Если у вас более сложный случай, вы можете использовать наш небольшой проект: ScreenSleepManager или, если речь идет только о конкретных ViewControllers, используйте Insomnia, как указывалось ранее. Ручное управление
idleTimerDisabled
почти всегда вызывало у меня некоторые проблемы (например, я забыл повторно установить значение false или обрабатывать несколько (вложенных) модулей, пытающихся установить его).источник