Si je comprends bien, vous avez un NavigationController sur votre premier onglet de votre TabBarController et, lorsque vous cliquez sur le premier onglet, vous voulez que votre NavigationController pour revenir à sa racine Contrôleur de vue. Tout d'abord, sachez que ce n'est pas le comportement par défaut d'un TabBarController et que cela peut être un peu ennuyeux pour vos utilisateurs. L'utilisateur peut revenir à la vue racine d'un contrôleur de navigation dans un TabBarController en appuyant une seconde fois sur l'onglet.
Sachant cela, si vous voulez encore changer le comportement par défaut de votre TabBarController, voici ce que vous pouvez faire:
Définissez votre classe AppDelegate pour être le délégué de votre UITabBarController. Il doit mettre en œuvre le protocole UITabBarControllerDelegate
, et vous devez écrire quelque chose comme ceci:
[myUITabBarController setDelegate:self];
dans votre méthode d'application didFinishLaunchingWithOptions:
. Puis, implémentez cette méthode dans votre AppDelegate.
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if ([tabBarController selectedIndex] == kMyNavigationControllerIndex) {
[(UINavigationController *)[tabBarController selectedViewController] popToRootViewControllerAnimated:NO];
}
}
Où kMyNavigationControllerIndex
est une valeur constante contenant l'index de la NavigationViewController que vous souhaitez modifier (par exemple 0 si elle est le premier onglet).
Espérons que cela aide.
Vous avez posé 16 questions, mais vous n'en avez pas encore marqué une seule avec la bonne réponse. Pour montrer votre gratitude aux personnes qui vous ont donné des conseils gratuits, je vous suggère de regarder à travers vos questions et voir si une réponse est assez bonne pour être marquée comme la bonne à votre question – willcodejavaforfood