web-dev-qa-db-fra.com

Swift: Changer la couleur de la barre d'état pour iOS 13

Pour ios 13, je ne peux pas définir la couleur du texte de la barre d'état. Comment obtenir la vue de statusBarManager? Comment puis-je changer la couleur du texte uniquement?

en raison de:

Arrêt de l'application en raison d'une exception non interceptée 'NSInternalInconsistencyException', raison: 'App appelée -statusBar ou -statusBarWindow sur UIApplication: ce code doit être modifié car il n'y a plus de barre d'état ou de fenêtre de barre d'état. Utilisez plutôt l'objet statusBarManager sur la scène de la fenêtre. '

Mon code actuel:

    func setStatusBarTextColor(_ color: UIColor) {
        if #available(iOS 13.0, *) {
            // How to do for iOS 13??
        } else {
            if let statusBar = UIApplication.shared.value(forKey: "statusBar") as? UIView {
                statusBar.setValue(color, forKey: "foregroundColor")
            }
        }
    }

J'ai déjà trouvé cela https://stackoverflow.com/a/57394751/9172697 mais ce n'est pas ce que je cherche

6
Mickael Belhassen

La couleur du texte dans la barre d'état n'a jamais été à vous; ce que tu faisais était toujours mal. Utilisez votre contrôleur de vue de niveau supérieur pour remplacer preferredStatusBarStyle. Vous avez deux choix, .lightContent et .darkContent, et vous ne devez utiliser ni l'un ni l'autre car vous souhaitez prendre en charge le mode clair/sombre.

1
matt