是否可以从 ViewController 中的 SceneDelegate 访问窗口变量?基本上我需要一个替代方案,UIApplication.shared.delegate.window但找不到任何东西
我正在使用 Swift 5.1 和 Xcode 11.1,目前我已经完成了暗模式设计。
用户使用此代码更改设置页面中的主题样式后,主题会立即更新。
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return
}
appDelegate.changeTheme(themeVal)
// App Delegate File
...
func changeTheme(themeVal: String) {
if #available(iOS 13.0, *) {
switch AppState.appThemeStyle {
case "dark":
window?.overrideUserInterfaceStyle = .dark
break
case "light":
window?.overrideUserInterfaceStyle = .light
break
default:
window?.overrideUserInterfaceStyle = .unspecified
}
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是我看不到状态栏文本,因为状态栏文本颜色和视图颜色相同。
有人可以建议我好的解决方案吗?谢谢。