我想在 watchOS6 中创建 SwiftUI 视图时注入一个 EnvironmentObject。
但是由于 WKHostingController 需要具体类型,因此我无法执行以下操作ContentView().environmentObject(UserData())
class HostingController: WKHostingController<ContentView> {
override var body: ContentView {
return ContentView().environmentObject(UserData())
}
}
此代码失败并出现以下错误:
无法将“某些视图”类型的返回表达式转换为“内容视图”类型
我见过这样的解决方法: 在 watchOS 中使用 environmentObject这似乎是一种 hack 而不是正确的解决方案。
我在 Twitter 上询问了一位 watchOS 工程师,他的回答是.environmentObject(UserData())
放在ContentView()
. 我尝试这样做,但 Xcode 报告错误。
那么有没有人找到一种方法来做同样的事情?