设置 UITabBarItem 徽章

Posted

技术标签:

【中文标题】设置 UITabBarItem 徽章【英文标题】:Set UITabBarItem Badge 【发布时间】:2015-06-08 01:56:43 【问题描述】:

我正在使用 SwiftParse.comios 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】:

你应该关心视图的生命周期和这三个方法:viewDidLoadviewWillAppearviewWillDisappear

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 徽章的主要内容,如果未能解决你的问题,请参考以下文章

BadgeValue 未在 UITabBarItem 上更新

UITabbarItem BadgeValue 文本颜色

如何更改标准 UITabBarItem 上的文本“更多”

iOS 7下更改UITabBarItem徽章背景颜色

iPhone:无法从 uitabbaritem 读取徽章值

iOS 7.1 中的 UITabBarItem 更改徽章颜色