我试图更新旧carplay到iOS14支持carplay。
目前,我实现了大多数UI。
简单地说,我的carplay结构看起来是这样的。
| tab1 | *tab2 | tab3 |
---
| fixed item > |
| additional item 1 > |
| additional item 2 > |
| ... |当用户选择tab2时,应该用少量固定项显示用户列表。
此时,我的问题是“如何更新tab2的附加项(Tab2)”
因为当carplay应用程序初始化时,数据无法准备好。因此,在我创建tab2模板时,没有附加项。
我想我可以更新CPListItem数组,比如
tabbarTemplate.templates.replaceSubrange(tab2-index...tab2-index, with: [newTemplate])但是tabbarTemplate模板的模板是不可变的(只获取)。
现在我更新tabbarTemplate本身
var mutable = tabbarTemplate.templates // [tab1, tab2, tab3]
mutable.replaceSubrange(....) // change tab2 with new template
tabbarTemplate.updateTemplates(mutable)我觉得很奇怪,因为它更新的是tabbarTemplate,而不是tab2。
我想知道是否有更好的方法来更新tab2项目。
谢谢
发布于 2022-08-18 14:50:32
当模板被选中时,使用CPTabBarTemplateDelegate方法更新它的内容:
func tabBarTemplate(_ tabBarTemplate: CPTabBarTemplate, didSelect selectedTemplate: CPTemplate) {
if let secondTemplate = selectedTemplate as? CPListTemplate {
secondTemplate.updateSections(...)
}
}https://stackoverflow.com/questions/73399247
复制相似问题