所以...我试图通过根据苹果文档强制采用轻模式来将我的应用设置为禁用iOS 13暗模式,在模拟器中,所有尝试都可以正常工作,但是当我在真实设备上尝试时,没有任何反应,这是就像我从未更改过代码一样
首次尝试
覆盖窗口,视图或视图控制器的界面样式
我试图将此代码示例放入我的viewDidLoad()中 没什么改变
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light
} else {
// Fallback on earlier versions
}
第二次尝试
完全退出暗模式
系统会自动在与iOS 13.0或更高版本SDK链接的任何应用中选择亮外观和暗外观。如果您需要更多时间来处理应用程序的暗模式支持,可以通过在应用程序的Info.plist文件中包含UIUserInterfaceStyle键(值为Light)来暂时退出。将此键设置为Light会导致系统忽略用户的首选项,并始终为您的应用程序添加亮色外观。 什么都没改变
Apple Documentation: Choosing a Specific Interface Style for Your iOS App
如果有人知道我如何仅在灯光模式下设置我的应用程序,我将非常感激:D
答案 0 :(得分:2)
只需在应用程序 info.plist 中添加新密钥 <input
type="text"
name="query"
placeholder=""
value={this.state.inputValue}
onChange={this.handleChange}
/>
handleChange (e) {
console.log('called handle change');
this.setState({inputValue: e.target.value});
}
,并将其值设置为 UIUserInterfaceStyle
强>。这会将应用默认样式覆盖为您提供的值。
所以您无需费心在其他任何地方
答案 1 :(得分:1)
if #available(iOS 13, *) {
window.overrideUserInterfaceStyle = .light
}
应该工作。在您的AppDelegate
的{{1}}中调用它。
答案 2 :(得分:1)
更改iOS 13及更高版本的窗口UserInterfaceStyle。只需设置
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
}
}
}
如有任何疑问,请告诉我。