2015-06-08 4 views
0

Я использую Swift и Parse.com разработать приложение для прошивки 8.Набор UITabBarItem Знак

У меня есть приложение с 2-мя вкладки. Вторая вкладка запрашивает таблицу в моей базе данных Parse, и я хочу обновить значение значка второй вкладки в зависимости от количества объектов в этом Parse Query.

Я понимаю, как PFQueries работают и как получить количество объектов и таких, но я не уверен, ГДЕ (то есть в том, что метод/функцию), чтобы поместить этот запрос и обновления для пропуска на вкладке элемента?

Собирался использовать этот код или аналогичный обновить значение жетона:

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?

ответ

0

Вы должны быть обеспокоены жизненного цикла зрения, и эти три метода: 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() 
}