0

Comment réinitialiser un uinavigationview pour afficher le contrôleur racine lorsque l'utilisateur clique revenir dans une barre d'onglets appComment réinitialiser un uinavigationview pour afficher le contrôleur racine lorsque l'utilisateur clique revenir dans une application barre d'onglets

Hey ,

Je me demandais comment je ferais cela. J'ai le contrôleur de nav dans mon délégué avec le contrôleur de tabulation et chaque fois que l'utilisateur clique sur un autre onglet je veux que le rootview sur le contrôleur de navigation soit montré si et quand ils rejoignent l'onglet qui contient le uinavcontroller.

Est-ce que cela a du sens?

Nick

Répondre

2

[self.navigationController popToRootViewControllerAnimated: OUI];

OU NON si vous ne voulez pas l'animer. De cette manière, toutes les vues mises en cache sont toujours présentes, c'est-à-dire que vous ne "supprimez/relâchez" pas toutes les vues au-dessus de la vue racine, à moins que navigationController ne le juge nécessaire.

J'espère que c'est ce que vous recherchez ..

+0

ok, me demandais où je TRIGGER que, comme comment puis-je crochet qui en passe chaque fois qu'un utilisateur clique sur le bouton particulier de vue de l'onglet sur l'onglet barre qui contient le uinavcontroller et la pile? Merci pour votre temps. – nickthedude

+0

Hi Nick Il existe une méthode déléguée UITabBar que vous devez implémenter pour que la barre d'onglets fonctionne. C'est: - (void) tabBar: (UITabBar *) tabBar didSelectItem: (UITabBarItem *) item Il est un peu difficile de voir votre code ou de savoir si vous l'avez fait dans le constructeur de l'interface ou programmé vous-même. Cependant, la méthode ci-dessus est appelée lorsqu'un utilisateur appuie sur la barre d'onglets, de sorte que vous pouvez voir quelle barre d'onglets a été tapée (UIBarItem) et à partir de là vous devez accéder au bon navigateur de navigation. Décrivez comment vous avez fait l'installation ou postez une partie du code et je vous aiderai à le faire "sauter" :) – RickiG

+0

cela a du sens Je vais essayer d'impliquer cela. Je pense que ça devrait marcher. – nickthedude

0

Lorsque vous utilisez la méthode déléguée UITabBar, vous devez retarder l'appel popToRootViewControllerAnimated.

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 
{ 
if ([self.selectedViewController isKindOfClass:[UINavigationController class]]) { 
    UINavigationController *view=(UINavigationController *)self.selectedViewController; 
    [view performSelector:@selector(popToRootViewControllerAnimated:) withObject:nil afterDelay:.5]; 
} 
} 
1

lieu le code appdelegate.m

if ([viewController isKindOfClass:[UINavigationController class]]) { 
    UINavigationController *nav = (UINavigationController *)viewController; 
    [nav popToRootViewControllerAnimated:NO]; 
} 
Questions connexes