web-dev-qa-db-ja.com

Swift:iOS 13のステータスバーの色を変更

IOS 13の場合、ステータスバーのテキストの色を設定できません。 statusBarManagerのビューを取得するにはどうすればよいですか?テキストの色のみを変更するにはどうすればよいですか?

のため:

キャッチされない例外 'NSInternalInconsistencyException'によりアプリを終了しています。理由: 'UIApplicationで-statusBarまたは-statusBarWindowが呼び出されました:ステータスバーまたはステータスバーウィンドウがなくなったため、このコードを変更する必要があります。代わりに、ウィンドウシーンでstatusBarManagerオブジェクトを使用してください。

私の現在のコード:

    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")
            }
        }
    }

私はすでにこれを見つけました https://stackoverflow.com/a/57394751/9172697 しかし、それは私が探しているものではありません

6

ステータスバーのテキストの色はあなた次第ではありませんでした。あなたがやっていたことはいつも間違っていました。トップレベルのビューコントローラーを使用して、preferredStatusBarStyleをオーバーライドします。 .lightContent.darkContentの2つの選択肢があり、ライト/ダークモードをサポートするため、どちらも使用しないでください。

1
matt