Bonjour à tous,
Je travaille avec une TabBar et je souhaite pouvoir changer le badge de l’un des onglets en fonction d’un nombre donné.
Dans l’ensemble, je pense être proche de la solution. Mais le nombre ne s’affiche pas dans ma TabBar.
L’idée c’est d’ajouter un nombre de produits au panier et que l’onglet panier affiche le nombre d’articles dedans.
J’ai donc fait ceci (en ayant bien affecté la classe CartTabBarItem à mon onglet dans mon storyboard) :
Dans mon ViewController (fonction à l’appui sur le bouton « Ajouter au panier »)
@IBAction func addToCartAction() { self._cartTabBarItem.setCartBadge(number: String(Int(self.uiProductsDetailsQuantityStepper.value))) self.resetQuantity() }
Dans mon CartTabBarItem.swift
func setCartBadge(number:String) { let item = self var actualBadgeValue = 0 if let badgeValue = item.badgeValue { actualBadgeValue = Int(badgeValue)! } let newBadgeValue = actualBadgeValue + Int(number)! item.badgeValue = String(newBadgeValue) print("BadgeValue : \(String(describing: item.badgeValue!))") }
Dans mon print, la valeur du badge est correcte. Mais elle ne s’affecte pas à mon onglet.
Edit :
A noter que j’utilise un TabBarController et un NavigationController. De ce fait, il me semble que je ne peux pas utiliser le TabBarController pour gérer un item en particulier. (le tableau des items est à Nil). Du coup, j’ai créé la classe CartTabBarItem et je l’ai associée à mon item. Mais j’ai l’impression que c’est de ce côté là que j’ai un soucis.
Vous avez une piste pour moi ?
Merci.