我有三个tableViewController
,它们由tabBarController
管理。并且必须向每个tabBarItem
提醒过期项目,例如任何其他应用程序。在我的第一个tableViewController
中,我试图在tabBarItem
的{{1}}内显示过期的项目数。这些值来自badgeValue
的{{1}},它具有良好的工作条件。
fetchedResultsController
但我的问题是删除它们。当我尝试从模型中删除最后一个对象时,它仍显示值1.
如何正确显示fetchedObjects.count
的{{1}}?
答案 0 :(得分:2)
我建议您实施controllerDidChangeContent
,这是fetchedResultsController
的委托方法。每次模型更改时,都会调用此模型,您可以查询计数并更新徽章编号。
答案 1 :(得分:1)
要清除我的,我只是将badgeValue设置为nil,而不是"":
tabController.tabBar.items[0].badgeValue = nil
答案 2 :(得分:1)
我发现了一种Swift 5解决方案,当您希望能够左右移动tabBar项时设置tabBar项,而不仅仅是标记固定的tabBar项位置的标志。 无论您将UiView放在tabBar的何处,这都是我的解决方案:
// set badge value on your own nav controller
self.navigationController?.tabBarItem.badgeValue = scoreBoxLabelOutlet.text
// Then use a nil value to remove the Badge Item.
self.navigationController?.tabBarItem.badgeValue = nil
我在这里使用了名为scoreBoxLabelOutlet.text的出口来收集信息。