在 WatchOS 上的 SwiftUI 中使用多个托管控制器

39f*_*edy 5 swift apple-watch watchos swiftui watchos-6

WKHostingController我正在尝试在 SwiftUI WatchOS 项目中使用多个。

我希望能够从 1 个控制器变为 3 个控制器。

在此输入图像描述

用户将按下第一个按钮ContentView(1)(与 配对HostingController(1)),然后将其导航到 3 组集中的中间控制器HC3(或HostingController3,带有标识符HC3

代码如下:

struct ContentView: View {
    var body: some View {
        VStack{
            NavigationLink(destinationName: "HC3"){
                Text("Go to other wk")
            }
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

主机控制器:

class HostingController: WKHostingController<AnyView> {
    override var body: AnyView {
        return AnyView(ContentView())
    }
}
Run Code Online (Sandbox Code Playgroud)

这确实带我到HC3但我无法导航到HC2HC4创建用户可以在HC2HC3和之间滚动的多个页面视图HC4。HostingController 2-4 都有与上面类似的 HostingController 和 ContentView。

我还确定了HC2HC3之间 HC4的关系Next Page是线性的 HC2 -> HC3 -> HC4

如果我在属性检查器中选中初始控制器复选框,HC2我可以按预期HC2HC3和之间导航HC4,但如果我选中初始控制器复选框,HC3我只能在存在相同关系时HC3甚至HC4在存在相同HC2 -> HC3 -> HC4关系时进行导航。

我遇到两个问题,第一(1)从关系完整的位置导航HC1(这HC3意味着我可以滚动浏览第二(2)能够让中间托管控制器保持其关系HC3Next PageHC2 HC3 HC4Next Page与另一个 HostingController 的关系。

我有什么想法可以让这项工作成功吗?