web-dev-qa-db-fra.com

App appelé -statusbar ou -statusbarwindow sur uiapplication

J'essaie de construire mon application avec Xcode 11 Beta 6 et iOS 13 Beta 8, mais cela jette cette erreur une fois qu'il commence à exécuter:

Application de terminaison due à une exception non capturée 'NsinternalinconsisconsisencyException', raison: 'App appelé -statusbar ou -Statusbarwindow sur UIAPPLication: Ce code doit être modifié car il n'y a plus une barre d'état ou une fenêtre de barre d'état. Utilisez l'objet StatusBarManager sur le Scène de la fenêtre à la place. '

Quelle est la scène de la fenêtre et comment utiliser le statusBarManager?
Et je ne suis pas sûr que cela soit pertinent, mais je n'utilise aucun SwiftUI.

14
Lukas Würzburger

Pour accéder à la barre d'état dans Swift 5+ et iOS 13 +

Besoin de remplacer -Satusbar ou -StatusWindow avec StatusBarManager.

if #available(iOS 13.0, *) {

        let statusBar = UIView(frame: UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.windowScene?.statusBarManager?.statusBarFrame ?? CGRect.zero)
        statusBar.backgroundColor = .appNavigationThemeColor
          //  statusBar.tag = 100
        UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.addSubview(statusBar)

    } else {

            let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
            statusBar?.backgroundColor = .appNavigationThemeColor

        }
    }

J'espère aidera :)

0
JaspreetKour