Представьте ViewController поверх всего, независимо от иерархии представлений в IOS 13 - PullRequest
1 голос
/ 09 октября 2019

В iOS 13 есть новое поведение для модального контроллера представления, когда представлено. Теперь это не полноэкранный режим по умолчанию, и когда я пытаюсь изменить modalPresentationStyle на .fullScreen, мое представление присутствует и немедленно закрывается. Я представляю контроллер вида с кодом:

 if #available(iOS 13.0, *) {

        var popupWindow: UIWindow?

        let windowScene = UIApplication.shared
            .connectedScenes
            .filter { $0.activationState == .foregroundActive }
            .first
        if let windowScene = windowScene as? UIWindowScene {
            popupWindow = UIWindow(windowScene: windowScene)
        }

        let vc = UIViewController()
        vc.view.frame = UIScreen.main.bounds

        popupWindow?.frame = UIScreen.main.bounds
        popupWindow?.backgroundColor = .clear
        popupWindow?.windowLevel = UIWindow.Level.statusBar + 1
        popupWindow?.rootViewController = vc
        popupWindow?.makeKeyAndVisible()
        popupWindow?.rootViewController?.present(self, animated: true, completion: nil)
}

1 Ответ

1 голос
/ 09 октября 2019

Я нашел решение:

if #available(iOS 13.0, *) {
     if var topController = UIApplication.shared.keyWindow?.rootViewController  {
           while let presentedViewController = topController.presentedViewController {
                 topController = presentedViewController
                }
     self.modalPresentationStyle = .fullScreen
     topController.present(self, animated: true, completion: nil)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...