Comment puis-je accéder à l'instance _tabBar à partir de UITabBarController
-
22-07-2019 - |
Question
J'essaie d'accéder à l'instance _tabBar à partir d'un UITabBarController. J'essaie de masquer la barre de tabulation dans certaines situations; pour cela, j'ai ajouté une extension à UITabBarController, où je peux accéder à l'instance _tabBar et appeler le message setHidden. Cela fonctionne lors de la compilation pour le simulateur, mais lorsque je compile pour le périphérique, j'obtiens le message d'erreur suivant
" _OBJC_IVAR _ $ _ UITabBarController._tabBar ", référencé depuis: _OBJC_IVAR _ $ _ UITabBarController._tabBar $ non_lazy_ptr dans UITabBarController + TabBar.o
Que dois-je ajouter à mes drapeaux de compilation? et pourquoi ça marche lors de la compilation pour le simulateur.
Merci d'avance.
La solution 2
Il est accessible depuis iPhone OS 3.0
Autres conseils
Selon les documents pour UITabBarController:
Vous ne devriez jamais tenter de manipuler l'objet UITabBar lui-même stocké dans cette propriété. Si vous essayez de faire oui, la vue de la barre d’onglet jette un exception. Pour configurer les éléments pour votre interface de barre d’onglet, vous devriez attribuer à la place une ou plusieurs vues personnalisées contrôleurs à la viewControllers propriété. La barre d'onglets recueille les éléments de la barre d'onglets nécessaires dans la vue les contrôleurs que vous spécifiez.
La vue de la barre d'onglets fournie par cette la propriété est seulement pour les situations où vous voulez afficher une fiche d'action en utilisant la méthode showFromTabBar: la classe UIActionSheet.
Si vous poussez votre UITAbBarController sur une pile de contrôleurs de navigation, vous pouvez définir la propriété hidesBottomBarWhenPushed sur YES et cela fonctionnera.
Il pourrait également y avoir une autre API dans la super-classe de UITAbBarController qui le fera. Sinon, vous pouvez parcourir la hiérarchie de sous-vues et masquer celle qui est nécessaire.