私は Swift 5.1 と Xcode 11.1 を使用しており、現在ダーク モードデザインの実装を完了しています。
アプリには、ユーザーが表示テーマ ( Light、Dark、System Default ) を設定できる設定があり、ユーザーがテーマを選択した後にアプリを再起動すると、現在正常に動作しています (このブールデータを UserDefaults に保存し、AppDelegate ファイルでアプリの起動時に UIAppearance を設定します)
これが私のコードです
if #available(iOS 13.0, *) {
switch AppState.appThemeStyle {
case "dark":
window?.overrideUserInterfaceStyle = .dark
break
case "light":
window?.overrideUserInterfaceStyle = .light
break
default:
window?.overrideUserInterfaceStyle = .unspecified
}
}
しかし、多くのアプリでは、ユーザーがテーマ スタイルを設定するとすぐに表示テーマが変更されることがわかります。
テーマを変更するためだけにアプリを再起動するのは得策ではないと思います。ユーザーがテーマ スタイルを設定した直後にテーマを変更する必要があります。
基本ビューコントローラーを設定し、ViewWillAppear にユーザー インターフェイス スタイルを設定してそれを試みましたが、ナビゲーション バーとタブ バーの外観は変わりません。
誰かがこれを処理する方法を教えてもらえますか? ありがとう。