WatchOS 上的 SwiftUI 应用程序中是否可以进行基于页面的导航?

Bre*_*ett 3 swift watchos swiftui

我看到WatchOS支持基于页面的导航,但有没有办法使用 SwiftUI 访问此功能?

基于页面的导航

小智 8

如果您使用新的 SwiftUI 应用程序生命周期并且无法访问 Storyboard(或者只需要 App Delegate Cycle 的解决方案而不使用 Storyboard),您可以在 SwiftUI 2 中使用新的页面视图样式:

WindowGroup {
   TabView {
     Page1View()
     Page2View()
   }
   .tabViewStyle(PageTabViewStyle())
}
Run Code Online (Sandbox Code Playgroud)


Ger*_*eon 5

是的,这是可能的。首先,像这样为每个页面定义托管控制器

class Page1HostingController: WKHostingController<Page1View> {
    override var body: Page1View {
        self.setTitle("page1")
        return Page1View()
    }
}

class Page2HostingController: WKHostingController<Page2View> {
    override var body: Page2View {
        self.setTitle("page2")
        return Page2View()
    }
}
Run Code Online (Sandbox Code Playgroud)

其中,Page1ViewPage2View是你SwiftUI实现。

然后,将新的视图控制器添加到您的Interface.storyboard,将它们的实现类设置为您的新控制器类并通过“下一页”segue 连接它们。

  • 那行得通,谢谢!我认为 SwiftUI 应该取消故事板。 (5认同)