12
votes

Appuyez sur une touche UITABBAR dans Xcode

Désolé pour la question du débutant. J'ai un uitabbar dans ma vue principale de la fenêtre ainsi qu'un tableau d'uoinavigationControls pour chaque onglet. La structure est similaire à celle de l'application iPod en ce que les vues principales sont visibles en sélectionnant les éléments de la barre d'onglets, puis l'utilisateur peut explorer davantage avec la navigationController en appuyant sur la pile.

Ce que j'aimerais pouvoir faire est de faire l'équivalent d'appuyer sur un bouton d'onglets en bas de l'une des sous-espaces de code (c.-à-d. Modifier la propriété sélectionnée de l'ongletsBar et afficher le lancement du contrôleur de première vue pour l'onglet).

Toute aide serait grandement appréciée.

Dave


0 commentaires

6 Réponses :


23
votes
 MyAppDelegate *appDelegate = (MyAppDelegate*) [[UIApplication sharedApplication] delegate];
 [appDelegate SwitchToTab:index]

4 commentaires

Pour moi, régler en appelant la méthode TabbarController semble appropriée! Mais va vérifier cela n'a pas d'importance!


Oui, peut-être que vous avez raison - j'ai pris une partie de mon code où j'ai utilisé tabbar sans tabbarcontroller


C'est génial merci. OK, Dumb Question Partie 2. Comment puis-je accéder à l'objet root de mon code? La barre d'onglets réelle est configurée en code à partir du contrôleur de vue racine. Je souhaite pouvoir définir la propriété de la barre d'onglets mais à partir d'un autre contrôleur d'affichage qui a été poussé à la pile. Est-ce que je l'explique assez bien. C'est comme si j'ai besoin d'un équivalent de soi, mais pour l'objet parent au sommet de l'arbre. Encore une fois, désolé pour la question de Newbe, je manque quelque chose de très fondamental dans ma pensée, je suppose.


Ai-je besoin de quelque chose comme (pseudo code): [parentObject.tabbarcontroller SEselectedex: index]



11
votes

Alternativement ...

[self.parentViewController.tabBarController setSelectedIndex:3];


0 commentaires

3
votes

J'aimerais répondre à Prakash, mais je ne peux pas comprendre comment. Peut-être que je suis bloqué jusqu'à ce que mon score monte.

De toute façon, j'espère que cela aidera quelqu'un: P>

Je faisais ce que Prakash a dit, et rien ne se passait. C'est parce que d'avoir un pointeur sur mon délégué de l'application, je faisais cela: p> xxx pré>

Quand j'aurais dû faire cela: P>

AppDelegate_Phone *appDelegate = (AppDelegate_Phone *) [[UIApplication sharedApplication] delegate];


0 commentaires

0
votes

Pour cela, il vous suffit de prendre un contrôleur uitabbar -

.h fichier - xxx

que vous pouvez définir index selon vos besoins < Pré> xxx


0 commentaires

0
votes
UITabBarController *MyTabController = (UITabBarController *)((AppDelegate*) [[UIApplication sharedApplication] delegate]).window.rootViewController;
[MyTabController setSelectedIndex:1];

0 commentaires

0
votes

Je voulais faire quelque chose de similaire mais pour Xcode 6.4 iOS (8.4) SetSelectedex en lui-même ne le fera pas.

Ajoutez les contrôleurs d'affichage de la barre d'onglets à une liste, puis utilisez quelque chose comme ce qui suit dans une fonction puis appelez-le: p>

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {

   if (item == self.firstTabBarItem) 
      // Right here
    }
    else if ...
}


0 commentaires