SwiftUI 如何在 HostingController 之间传递 EnvironmentObjects?

How does SwiftUI pass EnvironmentObjects between HostingController?

我正在尝试以与这个问题类似的方式实现 Apple Watch 应用程序:

我正在尝试在不同的 HostingController 之间传递数据。我的数据存储在具有已发布属性的 EnvironmentObject 中。如果我只使用一个 HostingController,则可以在不同视图之间共享数据。但是当使用不同的 HostingController,托管不同的视图(没有 segues)时,我找不到使用 Environment 对象的语法,从 HC1HC2HC3,等等

我在我的 SwiftUI 视图中使用这段代码展示 HostingController

NavigationLink(destinationName: "HC2"){
        Text("Go to HC2")

这是可能的方法

class AppState: ObservableObject {
    static let shared = AppState()      // shared instance

    @Published var setting: String = "some"
}

class HostingController: WKHostingController<AnyView> {
    override var body: AnyView {
        let contentView = ContentView()
            .environmentObject(AppState.shared)     // << inject !!
        return AnyView(contentView)
    }
}

class HostingController2: WKHostingController<AnyView> {
    override var body: AnyView {
        let contentView = ContentView2()
            .environmentObject(AppState.shared)     // << inject !!
        return AnyView(contentView)
    }
}