【问题标题】:possible to instantiate WKInterfaceController in SwiftUI Watch project?可以在 SwiftUI Watch 项目中实例化 WKInterfaceController 吗?
【发布时间】:2021-02-16 14:52:54
【问题描述】:

我有一个项目,我在 Apple Watch 上遇到了 SwiftUI 的限制。我提出的解决方案是实例化一个 WKInterfaceController 来执行所需的功能,然后返回使用 SwiftUI 视图。这可能吗?我试图将我的控制器包装在一个 WKInterfaceObjectRepresentable 对象中,但似乎没有办法从 Storyboard 实例化接口控制器,这在 iOS 上是可能的,根据这种类似的情况:

How to add Storyboard ViewController into SwiftUI Project?

但 Xcode 告诉我,“在范围内找不到 UIStoryboard”

有没有办法从 SwiftUI 创建一个 InterfaceController?或者我可能需要为我的整个 Watch 项目使用 WKHostingController,以便可以访问使用 InterfaceController 对象的选项?

谢谢。

【问题讨论】:

  • UIStoryboard 是 UIKit 的一部分,而不是 SwiftUI,它不适用于 Apple Watch watchOS。使用纯 SwiftUI 或 WatchKit。
  • OK...但是在 WatchKit 项目中使用故事板。但也许没有办法以编程方式引用它?
  • 您找到解决方案了吗?
  • 很遗憾没有。

标签: swiftui apple-watch


【解决方案1】:

您可以使用NavigationLinkdestinationName:label: 参数从SwiftUI 导航到在watchOS 故事板中定义的现有界面控制器,请参阅here

destinationName 是故事板中用于该接口控制器的标识符,例如:

NavigationLink(destinationName: "MyInterfaceControllerIdentifier") {
  Text("Go")
}

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2013-08-20
    • 2021-08-02
    相关资源
    最近更新 更多