首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新iOS Carplay模板的项

如何更新iOS Carplay模板的项
EN

Stack Overflow用户
提问于 2022-08-18 07:45:13
回答 1查看 155关注 0票数 0

我试图更新旧carplay到iOS14支持carplay。

目前,我实现了大多数UI。

简单地说,我的carplay结构看起来是这样的。

代码语言:javascript
复制
| tab1 | *tab2 | tab3 |
---
| fixed item > |
| additional item 1 > |
| additional item 2 > |
| ... |

当用户选择tab2时,应该用少量固定项显示用户列表。

此时,我的问题是“如何更新tab2的附加项(Tab2)”

因为当carplay应用程序初始化时,数据无法准备好。因此,在我创建tab2模板时,没有附加项。

我想我可以更新CPListItem数组,比如

代码语言:javascript
复制
tabbarTemplate.templates.replaceSubrange(tab2-index...tab2-index, with: [newTemplate])

但是tabbarTemplate模板的模板是不可变的(只获取)。

现在我更新tabbarTemplate本身

代码语言:javascript
复制
var mutable = tabbarTemplate.templates // [tab1, tab2, tab3]
mutable.replaceSubrange(....)   // change tab2 with new template
tabbarTemplate.updateTemplates(mutable)

我觉得很奇怪,因为它更新的是tabbarTemplate,而不是tab2。

我想知道是否有更好的方法来更新tab2项目。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-18 14:50:32

当模板被选中时,使用CPTabBarTemplateDelegate方法更新它的内容:

代码语言:javascript
复制
func tabBarTemplate(_ tabBarTemplate: CPTabBarTemplate, didSelect selectedTemplate: CPTemplate) {
    if let secondTemplate = selectedTemplate as? CPListTemplate {
        secondTemplate.updateSections(...)
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73399247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档