以编程方式更改 CPTabBarTemplate 的 selectedTemplate
Programmatically change selectedTemplate of CPTabBarTemplate
我正在尝试了解有关 CarPlay 车载的更多信息。具体使用 CPTabBarTemplate
(2020 年的新模板和 iOS 14)。
我想要做的是以编程方式更改 selectedTemplate
,就像我在 UITabBar
.
中更新 selectedTab
一样
示例流程是带有两个选项卡的 CPTabBarTemplate
。一个 CPPointOfInterestTemplate
和一个 CPInformationTemplate
.
tabBarTemplate = CPTabBarTemplate(templates: [pointOfInterestTemplate, informationTemplate])
用户可以 select 一个兴趣点,然后从 poi 详细信息屏幕中选择一个可能显示“Select”的按钮,就像 Apple WWDC20 talk 中的示例一样。
按下“Select”后,我想以编程方式将用户带到 tabBarTemplate
的 informationTemplate
,然后使用 selected 位置的详细信息来填充informationTemplate.
中的信息
我可能不理解 Apple 希望 CPTabBarTemplate
使用的方式。确实存在 CPTabBarTemplate
的 selectedTab
属性。但是,属性 只是 get
。这让我相信切换选项卡所需的方式是让用户自己点击下一个选项卡。
如有任何见解,我将不胜感激。 如果有人知道如何以编程方式更新 CPTabBarTemplate
的 selected 选项卡,那就太棒了。
感谢阅读!
我认为目前这不可能。 CPTabBarTemplate
的 public 接口非常短,但我什至无法通过调用 private api 使其工作。调用 tabTemplate.perform(Selector(("setIndexOfSelectedTab:")), with: 1)
和调用函数 tabTemplate.perform(Selector(("handleActionForControlIdentifier:")), with: tabTemplates[1].value(forKey: "identifier"))
都没有成功(即使使用正确选择的模板调用了选项卡栏委托函数)。
我正在尝试了解有关 CarPlay 车载的更多信息。具体使用 CPTabBarTemplate
(2020 年的新模板和 iOS 14)。
我想要做的是以编程方式更改 selectedTemplate
,就像我在 UITabBar
.
中更新 selectedTab
一样
示例流程是带有两个选项卡的 CPTabBarTemplate
。一个 CPPointOfInterestTemplate
和一个 CPInformationTemplate
.
tabBarTemplate = CPTabBarTemplate(templates: [pointOfInterestTemplate, informationTemplate])
用户可以 select 一个兴趣点,然后从 poi 详细信息屏幕中选择一个可能显示“Select”的按钮,就像 Apple WWDC20 talk 中的示例一样。
按下“Select”后,我想以编程方式将用户带到 tabBarTemplate
的 informationTemplate
,然后使用 selected 位置的详细信息来填充informationTemplate.
我可能不理解 Apple 希望 CPTabBarTemplate
使用的方式。确实存在 CPTabBarTemplate
的 selectedTab
属性。但是,属性 只是 get
。这让我相信切换选项卡所需的方式是让用户自己点击下一个选项卡。
如有任何见解,我将不胜感激。 如果有人知道如何以编程方式更新 CPTabBarTemplate
的 selected 选项卡,那就太棒了。
感谢阅读!
我认为目前这不可能。 CPTabBarTemplate
的 public 接口非常短,但我什至无法通过调用 private api 使其工作。调用 tabTemplate.perform(Selector(("setIndexOfSelectedTab:")), with: 1)
和调用函数 tabTemplate.perform(Selector(("handleActionForControlIdentifier:")), with: tabTemplates[1].value(forKey: "identifier"))
都没有成功(即使使用正确选择的模板调用了选项卡栏委托函数)。