Toute idée pourquoi cela fonctionne:UITabBar Badging
[[[[[self tabBarController] tabBar] items] objectAtIndex:2]
setBadgeValue:@"Hello"];
Mais cela ne fonctionne pas? Je préférerais ne pas avoir à fournir un index de tabulation explicite (2 dans le code ci-dessus). En outre, existe-t-il un moyen d'obtenir l'index de la barre d'onglets à partir du contrôleur de vue dans le cas où le premier extrait est le seul moyen de faire ce travail?
Merci.
Pouvez-vous clarifier un peu? J'avais l'impression que si vous ajoutiez un contrôleur de vue à une barre d'onglets dans IB, alors le tabbaritem dans votre contrôleur de vue serait automatiquement défini. La variable tabBarItem n'est définitivement pas nulle et elle a le titre correct, mais ce n'est pas la même adresse que celle accessible via le tableau tabBar items. –
Vous venez de le trouver dans les docs Apple: "Les éléments de la barre d'onglets sont configurés via leur contrôleur de vue correspondant Pour associer un élément de barre d'onglets à un contrôleur de vue, créez une nouvelle instance de la classe UITabBarItem, configurez-la de manière appropriée pour le contrôleur de vue l'assigner à la propriété tabBarItem du contrôleur de vue Si vous ne fournissez pas d'élément de barre d'onglets personnalisé pour votre contrôleur de vue, le contrôleur de vue crée un élément par défaut ne contenant aucune image et le texte de la propriété title du contrôleur de vue. Je pense que je vais juste y accéder à travers le tableau par index plutôt que d'en créer un. –
Ah je vois ce que vous faisiez maintenant, il semble que l'exemple que vous avez donné devrait fonctionner ... ce que je pense est qu'une fois que vous affectez un viewController à votre tababrcontroller, il capture ce tabbar et change ensuite le viewController tabBarItem la propriété ne met pas à jour le bouton parce que le tabBarViewController ne vérifie pas les mises à jour. – Daniel