Вопрос проверяет знание жизненного цикла iOS-приложения и умение реагировать на смену состояний для управления интерфейсом.
Момент перехода в Inactive можно отследить через методы жизненного цикла Scene или AppDelegate. Именно в этот момент приложение перестаёт получать пользовательские события, но UI ещё на экране. Это подходящая точка для изменения интерфейса или скрытия данных. Использование уведомлений также возможно.
Отслеживание перехода в Inactive важно для защиты данных и корректного поведения UI.
Определение: sceneWillResignActive вызывается, когда сцена перестаёт быть активной.
func sceneWillResignActive(_ scene: UIScene) {
// скрыть sensitive UI
}
Используется в приложениях с UIScene.
Для приложений без сцен:
func applicationWillResignActive(_ application: UIApplication) {
// обновить UI
}
Можно подписаться на системное уведомление:
NotificationCenter.default.addObserver(
forName: UIApplication.willResignActiveNotification,
object: nil,
queue: .main
) { _ in
// реакция на Inactive
}
скрывают конфиденциальные данные
останавливают анимации
ставят приложение в безопасное состояние
Лучшее место для реакции на Inactive — sceneWillResignActive или applicationWillResignActive. Это надёжная и предсказуемая точка управления UI.