Представление экрана блокировки на верхней части раскадровки - PullRequest
1 голос
/ 16 января 2020

Когда пользователь входит в приложение из didFinishLaunchingWithOptions или applicationWillEnterForeground, я хотел бы отобразить экран блокировки.

У меня настроен экран блокировки в другой раскадровке, а не на главной one.

Если я создаю экземпляр раскадровки экрана блокировки, а затем перехожу на основную раскадровку, приложение не будет сохранять то же состояние, когда пользователь вышел из приложения, при входе в приложение с помощью applicationWillEnterForeground. * 1008. *

Так что, если пользователь находится в заданном c контроллере просмотра, а затем выйдите из приложения и войдите снова с помощью applicationWillEnterForeground, раскадровка будет создана как раскадровка экрана блокировки, и как только пользователь разблокирует экран, он будет быть перенаправленным на rootViewController основной раскадровки, а не на контроллер представления, в котором он был раньше.

Основная раскадровка начинается с UITabBarController.

Как вы преодолеете это?

if let lockedViewController = UIStoryboard(name: "Locked", bundle: .main).instantiateInitialViewController() {

    window?.rootViewController = lockedViewController
    window?.makeKeyAndVisible()
}

Раскадровка экрана блокировки:

enter image description here

Спасибо

1 Ответ

3 голосов
/ 16 января 2020

Просто создайте новый экземпляр UIWindow и сохраните ссылку в приложении.

При переходе на передний план создайте новое окно и откройте окно разблокировки

private var lockWindow:UIWindow?
func createNewWindow()  {
    lockWindow = UIWindow(frame: UIScreen.main.bounds)
    lockWindow!.rootViewController = UIStoryboard(name: "Locked", bundle: .main).instantiateInitialViewController()
    lockWindow!.windowLevel = UIWindow.Level.alert + 1;
    lockWindow!.isHidden = false
}

func releaseWindow() {
    self.lockWindow?.isHidden = true
    self.lockWindow = nil
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...