web-dev-qa-db-ja.com

iOSアプリでダークモードが無効にならないのはなぜですか?

したがって、私はアプリを設定してiOS 13のダークモードを無効にするように試みましたAppleドキュメント、エミュレータではすべての試行がうまくいきますが、実際に試してみるとデバイス、何も起こりません。コードを変更したことがないようです

最初の試み

ウィンドウ、ビュー、またはビューコントローラーのインターフェイススタイルをオーバーライドする

このコードサンプルを自分のviewDidLoad()に入れようとしました

変更なし

if #available(iOS 13.0, *) {
   overrideUserInterfaceStyle = .light
} else {
  // Fallback on earlier versions
}

2回目の試行

完全にダークモードをオプトアウト

システムは、iOS 13.0以降のSDKにリンクされているすべてのアプリを、明るい外観と暗い外観の両方に自動的にオプトインします。アプリのダークモードのサポートに取り組むために追加の時間が必要な場合は、アプリのInfo.plistファイルにUIUserInterfaceStyleキー(値はLight)を含めることで一時的にオプトアウトできます。このキーをLightに設定すると、システムはユーザーの設定を無視し、常にアプリに明るい外観を適用します。

変更なし

Appleドキュメント:iOSアプリに特定のインターフェイススタイルを選択する

ライトモードでのみアプリを設定する方法を誰かが知っている場合...私は非常に感謝します:D

7
Fogaiht
if #available(iOS 13, *) {
    window.overrideUserInterfaceStyle = .light
}

うまくいくはずです。 AppDelegatedidFinishLaunchingWithOptionsで呼び出します。

1
ChrisTheGreat

ウィンドウのUserInterfaceStyle for iOS 13以降のバージョンを変更します。設定するだけ

UIApplication.shared.changeStatusBarStyle(.light)

または

UIApplication.shared.changeStatusBarStyle(.dark)

毎回ウィンドウを変更した後。

extension UIApplication {

        enum StatusColor {

            case dark, light
        }

        func changeStatusBarStyle(_ mode: StatusColor = .light) {

            if #available(iOS 13.0, *) {

                guard let appDelegate = delegate as? AppDelegate else { return }

                var interfaceStyle: UIUserInterfaceStyle

                switch mode {
                case .dark:
                    interfaceStyle = .dark
                default:
                    interfaceStyle = .light
                }

                appDelegate.window?.overrideUserInterfaceStyle = interfaceStyle
            }
        }
    }

混乱があれば教えてください。

0
Amrit Tiwari