The new iOS 13 update introduces an optional system-wide. This causes e.g. the StatusBar to have light text, which might become unreadable on a white background. It also breaks the iOS Datetime Picker (see DatePickerIOS or react-native-modal-datetime-picker)
Asked
Active
Viewed 2.5k times
5 Answers
88
The solution is to either
- add this to your Info.plist file:
<key>UIUserInterfaceStyle</key>
<string>Light</string>
OR
- Add this to your
AppDelegate.m
:
if (@available(iOS 13.0, *)) {
rootView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}

David Schumann
- 13,380
- 9
- 75
- 96
-
1@Hazwin that sounds unlikely – Maxim Zubarev Jan 12 '20 at 14:27
-
@MaximZubarev I guess he is referring to https://stackoverflow.com/a/56546554/827027 – dwn Feb 04 '20 at 09:40
-
@Hazwin that's not true if you are using an updated version of Xcode and can be very misleading for someone reading the comments. I have more than one app in the app store using UIUserInterfaceStyle ligth in Info.plist – Jero Feb 19 '20 at 21:12
-
1@Jero yes. my bad. I was referring to https://stackoverflow.com/questions/56537855/is-it-possible-to-opt-out-of-dark-mode-on-ios-13/56546554#56546554 – Haswin Feb 27 '20 at 06:42
3
In your app.json file add:
{
"expo": {
...
"ios": {
"infoPlist": {
"UIUserInterfaceStyle": "Light"
}
},
}

Matthew Berman
- 39
- 3
1
This work for me
- Add this to Info.plist
<key>UIUserInterfaceStyle</key> <string>Light</string>
- And this to your AppDelegate.m
if (@available(iOS 13.0, *)) { rootView.backgroundColor = [UIColor systemBackgroundColor]; self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; } else { rootView.backgroundColor = [UIColor whiteColor]; }

Alejandro Soto
- 11
- 1
0
This solution seems to work best. Add this in your AppDelagate.m
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
//add this here vv
if (@available(iOS 13, *)) {
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
//add this here ^^
return YES;
0
Add this in your Info.plist
<key>UIUserInterfaceStyle</key>
<string>Light</string>
And this to your AppDelegate.m
rootView.backgroundColor = [UIColor whiteColor];

Akshay Shenoy
- 1,194
- 8
- 10