したがって、私はアプリを設定して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
if #available(iOS 13, *) {
window.overrideUserInterfaceStyle = .light
}
うまくいくはずです。 AppDelegate
のdidFinishLaunchingWithOptions
で呼び出します。
ウィンドウの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
}
}
}
混乱があれば教えてください。