56 votes

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

Comment définir le badge de la barre d'onglets avec swift ? Par exemple, lorsque je reçois un nouveau message, le numéro 1 apparaît sur l'icône du message ! Dois-je utiliser le fichier UITabBarItem.swift et écrire le code dans ce fichier ? Je ne suis pas vraiment sûr de savoir comment faire.

Merci !

141voto

Lepidopteron Points 625

Si vous avez obtenu la référence au tabBarController (par exemple, à partir du 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"
}

À partir d'un UITabBarController, il s'agirait de tabBar.items au lieu de tabBarController?.tabBar.items

et pour supprimer le badge :

tabItem.badgeValue = nil

18voto

Rupom Points 319

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

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

8voto

wzbozon Points 2851

Définir badgeValue sur ViewDidAppear . Sinon, elle peut ne pas apparaître au chargement de l'application.

import UIKit

class TabBarController: UITabBarController {

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

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

}

Aucun contrôle sûr puisque vous êtes en général sûr d'avoir TabBar avec n onglets.

1voto

LagMaster Points 51

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

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

J'ai obtenu la référence de ce poste

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X