Alors ... J'ai essayé de configurer mon application pour désactiver le mode sombre d'iOS 13 en forçant le mode clair en fonction de la Apple, dans l'émulateur toutes les tentatives fonctionnent bien, mais quand j'essaie sur le vrai appareil, rien ne se passe, c'est comme si je n'avais jamais changé mon code
Première tentative
Remplacer le style d'interface pour une fenêtre, une vue ou un contrôleur de vue
J'ai essayé de mettre cet exemple de code dans mon viewDidLoad ()
Rien n'a changé
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light
} else {
// Fallback on earlier versions
}
Deuxième tentative
Désactiver complètement le mode sombre
Le système opère automatiquement dans n'importe quelle application liée au SDK iOS 13.0 ou ultérieur aux apparences claires et sombres. Si vous avez besoin de plus de temps pour travailler sur la prise en charge du mode sombre de votre application, vous pouvez temporairement vous désabonner en incluant la clé UIUserInterfaceStyle (avec une valeur de lumière) dans le fichier Info.plist de votre application. La définition de cette clé sur Light fait que le système ignore les préférences de l'utilisateur et applique toujours une apparence claire à votre application.
Rien n'a changé
Documentation Apple: Choix d'un style d'interface spécifique pour votre application iOS
Si quelqu'un sait comment je règle mon application uniquement en mode lumière ... je vous en serai très reconnaissant: D
if #available(iOS 13, *) {
window.overrideUserInterfaceStyle = .light
}
Devrait marcher. Appelez-le dans votre AppDelegate
didFinishLaunchingWithOptions
.
Modifiez la fenêtre UserInterfaceStyle pour la version iOS 13+. Il suffit de régler
UIApplication.shared.changeStatusBarStyle(.light)
ou
UIApplication.shared.changeStatusBarStyle(.dark)
après avoir changé de fenêtre à chaque fois.
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
}
}
}
En cas de confusion, veuillez me le faire savoir.