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

我正在使用 SwiftParse.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 访问视图之前运行的选项卡视图有一个功能吗?

【问题讨论】:

    标签: ios swift parse-platform uitabbar uitabbaritem


    【解决方案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()
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 1970-01-01
      • 2011-06-18
      • 2017-08-09
      • 2016-12-22
      • 2014-02-23
      • 2021-02-13
      • 2021-07-30
      相关资源
      最近更新 更多