【发布时间】:2019-08-19 14:52:58
【问题描述】:
我想在 watchOS6 中创建 SwiftUI 视图时注入一个 EnvironmentObject。
但由于 WKHostingController 需要具体类型,因此我无法执行以下操作 ContentView().environmentObject(UserData())
class HostingController: WKHostingController<ContentView> {
override var body: ContentView {
return ContentView().environmentObject(UserData())
}
}
此代码失败并出现以下错误:
无法将“some View”类型的返回表达式转换为“ContentView”类型的返回
我见过这样的解决方法: Using environmentObject in watchOS 这似乎是一种 hack 而不是正确的解决方案。
我在 Twitter 上询问了一位 watchOS 工程师,他的回答是把 .environmentObject(UserData()) 放在 ContentView() 的正文中。我尝试这样做,但 Xcode 报告错误。
那么有人找到了同样的方法吗?
【问题讨论】: