设置 UITabBarItem 徽章
Posted
技术标签:
【中文标题】设置 UITabBarItem 徽章【英文标题】:Set UITabBarItem Badge 【发布时间】:2015-06-08 01:56:43 【问题描述】:我正在使用 Swift 和 Parse.com 为 ios 8 开发应用程序。
我有一个带有 2 个标签的应用。第二个选项卡查询我的 Parse 数据库中的一个表,我想根据该 Parse 查询中的对象数量更新第二个选项卡的标记值。
我了解 PFQueries 如何工作以及如何检索对象数量等,但我不确定 WHERE(即在什么方法/函数中)放置此查询并更新选项卡项的标记?
打算使用此代码或类似代码来更新徽章值:
var tabArray = self.tabBarController?.tabBar.items as NSArray!
var tabItem = tabArray.objectAtIndex(1) as UITabBarItem
tabItem.badgeValue = "34" // will use the value of my countObjects Parse query
那么我应该在哪里插入此代码来更新徽章?它需要在应用第一次加载时更新值,然后在进入/离开第二个选项卡的视图时更新值。
也许,在应用程序第一次启动时甚至通过 tabBar 访问视图之前运行的选项卡视图有一个功能吗?
【问题讨论】:
【参考方案1】:你应该关心视图的生命周期和这三个方法:viewDidLoad
、viewWillAppear
、viewWillDisappear
:
func updateBadgeValue()
var tabArray = self.tabBarController?.tabBar.items as NSArray!
var tabItem = tabArray.objectAtIndex(1) as UITabBarItem
tabItem.badgeValue = "34" // will use the value of my countObjects Parse query
// first loads
override func viewDidLoad()
super.viewDidLoad()
updateBadgeValue()
// the view is about to made visible
override func viewWillAppear(animated: Bool)
super.viewWillAppear(animated)
updateBadgeValue()
// the view is about to be removed
override func viewWillDisappear(animated: Bool)
super.viewWillDisappear(animated)
updateBadgeValue()
【讨论】:
以上是关于设置 UITabBarItem 徽章的主要内容,如果未能解决你的问题,请参考以下文章