2009-08-05 8 views
-1

Je cherche un moyen de désactiver un TabBarItem à partir de ViewController de l'un des onglets TabBars. Je ne suis même pas sûr si cela concerne la hiérarchie de vue ou ce qu'il faut vraiment rechercher. J'ai beaucoup essayé mais je n'ai pas trouvé de solution.Accéder à un TabBarItem depuis l'un des ViewControllers

À l'heure actuelle, j'ai travaillé autour d'elle en sauvegardant une référence à la barre d'onglets dans un objet singelton lors de l'instanciation de la barre d'onglets (à l'intérieur du délégué apps). Mais je ne pense pas que ce soit la meilleure façon de le faire.

Merci et Cheers, Nils

Répondre

0

Peut-être que je ne comprends pas ce que vous voulez, mais je Handicapées un bouton de barre d'onglets en allant dans le constructeur d'interface, puis en sélectionnant le bouton onglet je veux travailler sur (petite couleur de surbrillance bleue uniquement sur le support de l'image, la petite boîte avec un? dessus) puis -> Menu Outils -> Inspecteur -> Propriétés de l'onglet Barre (premier onglet à gauche dans l'inspecteur) -> puis un petit bouton radio en bas dit "Activé" -> désélectionner ceci. Fonctionne pour moi, car je l'utilise comme un simple écran de chargement sur le premier onglet. J'espère que cela pourra aider. Kirk

1

J'ai eu le même problème et je l'ai trouvé une solution (mais je trouve un peu sale)

Dans votre ViewController où vous souhaitez désactiver le TabBarItem, créer une variable UITabBarController *myTabBarController; propriété.

Dans la classe où vous gérez votre Tabbarcontroller mettre ce code dans le viewDidLoad:

MyViewController * vc = (MyViewController *)[navigationController.viewControllers objectAtIndex:0];// O the index of the first view controller replace it with the index of the needed viewController 
vc.myTabBarController = myTabBarController; // pass your TabBarController to your ViewController 

maintenant à votre ViewController classe (MyViewController) et utiliser ce code pour désactiver le tabBarItem:

UITabBarItem *mapTabBarItem= [[myTabBarController.tabBar items] objectAtIndex:1]; // I want to desable the second tab for example (index 1) 
[mapTabBarItem setEnabled:NO]; 

Notez que ce n'est pas la meilleure façon de le faire, mais cela fonctionne :-)

Questions connexes