0

我有导航应用程序,现在我正在开发 CarPlay 仪表板。单击 CPDashboard 中的按钮后,我无法启动 InterfaceController。

在此处输入图像描述

我的按钮代码:

let searchButton = CPDashboardButton(titleVariants: ["Find"], subtitleVariants: ["place"], image: searchImage) { [weak self] (_) in
                self?.openSearchView()
            }

点击按钮后,调用 func openSearchView(),但视图仍保留在仪表板中。

文档中没有信息,我们如何在视图之间切换(界面控制器 <-> 仪表板控制器)

4

1 回答 1

1

不确定这是正确的方法,但没有提及这一点,甚至官方示例应用程序也没有这样做。但是您可以通过调用open(_, options:, completionHandler)dashboardScene 来实现。

像这样

dashboardController.shortcutButtons = [CPDashboardButton(titleVariants: ["Find"], subtitleVariants: ["place"], image: searchImage, handler: { _ in
    guard let url = URL(string: "your.app.scheme://whatever/wherever") else { return }
    templateApplicationDashboardScene.open(url, options: nil, completionHandler: nil)
})]

这将打开主应用程序并调用open(_, urlContexts:)主 carplay 场景,您可以在其中处理该 URL 并做出相应的反应,例如打开搜索等。

于 2021-05-06T22:35:26.953 回答