web-dev-qa-db-fra.com

Comment définir le badge de la barre de tabulation avec swift?

Comment définir le badge barre de tabulation avec Swift? Par exemple, lorsque je reçois un nouveau message indiquant le numéro 1 sur l'icône du message! Dois-je utiliser UITabBarItem.Swift et écrire le code qu'il contient! 

Je vous remercie !

17
Faris

Si vous avez obtenu la référence à tabBarController (par exemple de UIViewController), vous pouvez procéder comme suit:

if let tabItems = tabBarController?.tabBar.items {
    // In this case we want to modify the badge number of the third tab:
    let tabItem = tabItems[2]
    tabItem.badgeValue = "1"
}

Depuis un UITabBarController, il s'agirait de tabBar.items au lieu de tabBarController?.tabBar.items

et supprimer le badge: 

tabItem.badgeValue = nil
53
Lepidopteron

La ligne suivante peut vous aider à afficher un badge dans UITabBerItem

tabBarController?.tabBar.items?[your_desired_tabBer_item_number].badgeValue = value
13
Rupom

Définissez badgeValue dans ViewDidAppear. Sinon, il pourrait ne pas apparaître lors du chargement de l'application.

import UIKit

class TabBarController: UITabBarController {

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    self.tabBar.items![2].badgeValue = "7"
}

}

Aucune vérification en toute sécurité puisque vous êtes en général sûr que vous avez TabBar avec n onglets. 

2
wzbozon

Merci à @Lepidopteron, solution instantanée pour moi . De plus, vous pouvez le faire avec l'index de l'index de tabulation sélectionné: 

let tabItems = self.tabBarController?.tabBar.items as NSArray!
    var selectedIndex = tabBarController!.selectedIndex //here 
    let tabItem = tabItems![selectedIndex] as! UITabBarItem
    tabItem.badgeValue = "2"

Vous avez la référence de this post

1
LagMaster