CPTemplate 不会在 Carplay 上加载
Posted
技术标签:
【中文标题】CPTemplate 不会在 Carplay 上加载【英文标题】:CPTemplate won't load on Carplay 【发布时间】:2021-04-26 02:28:19 【问题描述】:因此,我关注了有关如何制作基本 CarPlay 应用程序的 Apple 视频。但我得到一个空白屏幕。而不是列表视图。
我想知道是否有人可以帮助我如何使用 CPTemplate 方法制作一个简单的列表视图。
import Foundation
import CarPlay
class CarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate
var interfactController: CPInterfaceController?
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController)
let item = CPListItem(text: "hello", detailText: "This works")
let jazz = CPListItem(text: "Jazz", detailText: "How about some smooth jazz.")
let listTemplate = CPListTemplate(title: "TEST", sections: [CPListSection(items:[item,jazz])])
print("HUGE TEST TO SEE IF THIS IS RUNNING")
self.interfactController?.setRootTemplate(listTemplate, animated: false)
我知道它会运行,因为我在控制台日志中进行了巨大的测试以查看它是否正在运行。
只是下一行不运行/加载。
【问题讨论】:
是interfactController
nil
?
我不知道我只是得到一个空白屏幕。 @Paulw11
我的意思是使用打印语句或调试器进行检查 - 该属性是 nil
吗?我想是的。使用传递给委托函数的interfaceController
【参考方案1】:
你的 interfaceController 是 nil。您可以使用委托方法中的 interfaceController 对其进行初始化。
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController)
self.interfactController = interfaceController
//your code to load template
【讨论】:
【参考方案2】:检查 info.plist 上的规则是否已经更新,并且你已经创建了一个特殊的 carplay 代理场景
【讨论】:
以上是关于CPTemplate 不会在 Carplay 上加载的主要内容,如果未能解决你的问题,请参考以下文章
使用 CarPlay 框架的 CarPlay 应用在 iOS 13 或更早版本上崩溃
从 Xcode 12 CarPlay 模拟器启动时,CarPlay 停车应用程序崩溃