我正试图用类似这个问题的方式实现一个Apple Watch应用。在WatchOS中使用SwiftUI实现从主控制器到基于页面的控制器导航的问题。
我正试图在不同的 HostingController
s. 我的数据存储在一个 EnvironmentObject
与发布的属性。如果我只用一个 HostingController
在不同的视图之间共享数据是可以的。但当使用不同的 HostingController
,托管不同的视图(无转场),我找不到使用我的 Environment
对象从 HC1
到 HC2
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ HC3
、等。
我提出 HostingController
在我的SwiftUI视图中使用这段代码。
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)
}
}