为SwiftUI Apple Watch App实现基于页面的导航

Rya*_*son 6 navigation apple-watch swiftui

我正在SwiftUI中构建一个Apple Watch应用,并希望实现基于页面的导航,因此当用户在主屏幕上向左滑动时,他们将被带到另一个视图。

我了解如何使用NavigationLink来让用户从一个屏幕移动到另一屏幕,但是不了解如何通过向左或向右滑动来使用户在屏幕之间导航。

有谁知道该怎么做?

a l*_*ame 8

这是如何使用 SwiftUI 为 watchOS 实现基于页面的导航的指南。描述基于Hacking with watchOS,SwiftUI 版本

首先,创建一个新的 SwiftUI 视图,例如称为 CounterView。

其次,创建 WKHostingController 的子类来显示新的 SwiftUI 视图。只需复制 HostingController.swift 中已经存在的控制器并将其名称更改为 CounterHostingController。文件 HostingController.swift 然后包含这两个控制器:

class HostingController: WKHostingController<ContentView> {
    override var body: ContentView {
        return ContentView()
    }
}

class CounterHostingController: WKHostingController<CounterView> {
    override var body: CounterView {
        return CounterView()
    }
}
Run Code Online (Sandbox Code Playgroud)

第三,通过打开文件 Interface.storyboard 并单击 Xcode 窗口右上角的 + 按钮,创建一个故事板场景来存储新创建的托管控制器。在搜索框中键入“Hosting Controller”,拖出一个新的 Hosting Controller 并将其移动到现有 Hosting Controller 旁边。在身份检查器中(单击 Xcode 窗口右侧顶部的第二个菜单中的第四个项目,该项目显示左上角带有图片且文本周围浮动的文档),将 Class 更改为“ CounterHostingController”,然后选中“从目标继承模块”框。

第四,为了将这两个屏幕连接为同一用户界面的页面,在情节提要中按 Ctrl 并在原始主机控制器上单击鼠标并按住键,同时将鼠标指针拖到新控制器上,然后松开鼠标按钮,为关系转场选择“下一页”。


Mec*_*cid 0

您可以使用多个 WKHostingController 通过 Storyboard 将它们绑定到页面中。每个 WKHostingController 将代表导航流中的页面。