Navigation 为SwiftUI Apple Watch应用程序实现基于页面的导航

Navigation 为SwiftUI Apple Watch应用程序实现基于页面的导航,navigation,apple-watch,swiftui,Navigation,Apple Watch,Swiftui,我正在SwiftUI中构建一个Apple Watch应用程序,并希望实现基于页面的导航,这样当用户在主屏幕上向左滑动时,他们将被带到另一个视图 我知道如何使用NavigationLink让用户从一个屏幕移动到另一个屏幕,但不知道如何让用户通过向左或向右滑动从一个屏幕导航到另一个屏幕 有人知道如何做到这一点吗?您可以使用多个WkhostingController,使用故事板将它们绑定到页面中。 每个WKHostingController都将代表您导航流程中的页面。以下是如何使用SwiftUI为wa

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

我知道如何使用NavigationLink让用户从一个屏幕移动到另一个屏幕,但不知道如何让用户通过向左或向右滑动从一个屏幕导航到另一个屏幕


有人知道如何做到这一点吗?

您可以使用多个WkhostingController,使用故事板将它们绑定到页面中。
每个WKHostingController都将代表您导航流程中的页面。

以下是如何使用SwiftUI为watchOS实现基于页面的导航的指南。描述基于:

首先,创建一个新的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()
    }
}
class HostingController:WKHostingController{
覆盖变量主体:ContentView{
返回ContentView()
}
}
类CounterHostingController:WKHostingController{
覆盖变量主体:反视图{
返回反视图()
}
}
第三,通过打开file Interface.storyboard并单击Xcode窗口右上角的+按钮,创建一个故事板场景来存储新创建的主机控制器。在搜索框中键入“主机控制器”,拖出一个新的主机控制器,并将其移动到现有主机控制器旁边。在identity inspector(单击Xcode窗口右侧顶部第二个菜单中的第四项,该项显示一个文档,左上角有图片,文本在其周围浮动),将类更改为“CounterHostingController”,然后选中“从目标继承模块”框


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

我刚刚在另一个线程中回答了这个问题,这非常有用,但我想知道是否有其他方法可以制作另一个
WKHostingController
,可以从初始控制器的左侧连接和获取。使用
下一页
segue将其添加到右侧,我不知道如何使某些内容滑到左侧(
上一页
segue?)我想这是不可能的,因为这样的非标准导航可能会导致用户的困惑。我正在尝试实现的是类似于Apple Watch上的锻炼应用程序。您拥有显示当前练习的初始视图,左侧视图为暂停/停止等,右侧视图(当前练习)正在播放。我希望有3个视图,并排,在中间有初始视图,但是我不确定是否可以用故事板来完成。@ YangNoM检查,具体地说,“可以通过调用接口控制器的IsCurrurrPrEnter()方法指定一个不同的起始点,在它的In()或唤醒(Wieln::)方法中。