设置UITabBarItem徽章

时间:2015-06-08 01:56:44

标签: ios swift parse-platform uitabbar uitabbaritem

我正在使用 Swift Parse.com 为iOS 8开发应用。

我有一个带有2个标签的应用。第二个选项卡查询我的Parse数据库中的表,我想根据该Parse查询中的对象数更新第二个选项卡的徽章值。

我理解PFQueries如何工作以及如何检索对象的数量等,但我不确定 WHERE (即在什么方法/函数中)来放置此查询并更新选项卡项&# 39; s徽章?

将使用此代码或类似代码来更新徽章值:

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 个答案:

答案 0 :(得分:0)

您应该关注视图的生命周期以及这三种方法: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()
}