【发布时间】:2020-06-15 08:22:40
【问题描述】:
我为我的应用程序的大多数 VC 添加了一个小型容器视图,该视图将用作购物车预览,显示购物车中的商品数量和总金额。可以从应用程序内的多个位置将内容添加到购物车,因此我正在寻找在发生时更新容器 VC 的最佳选项。我认为有比找到正确的 VC 并从我可以添加到购物车的所有位置调用更新函数更好的方法吗?是否可以保留 VC 的共享实例?
我找到了一些关于此的帖子,但由于我可以从很多地方(VC、Cells、JSON 等)更新购物车,所以我正在寻找最容易维护的。
- 我知道我可以使用协议和委托,但是我必须在每个视图中设置委托
- 我知道我可以找到子 VC (Updating Content In Container View),但由于每个 TabBarItem 有两个容器,我必须来回遍历子/父才能正确更新(添加到购物车发生在大型 VC 中(见附件img)和CartPreview是小的。如果这两个没有相互关系,我必须从大到父母,然后从父母到孩子(小)。
故事板的一部分:
容器 VC
override func viewWillAppear(_ animated: Bool) {
updatePreviewBar()
}
func updatePreviewBar() {
numberOfItemsInCartLabel.text = "\( String(Cart.sharedInstance.order.items.count)) items"
amountLabel.text = String(Cart.sharedInstance.order.total.withTousandSeparator)
}
提前致谢!
【问题讨论】: