Si vous sous-classe votre contrôleur de navigation, vous pouvez mettre en œuvre la popViewControllerAnimated: méthode et jeter un isKindOfClass: vérifier là pour déterminer si le contrôleur de vue que vous cherchez est être sauté. Par exemple:
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
//Reference current controller being displayed
UIViewController *currentController = [self.viewControllers lastObject];
//Check class
if ([currentController isKindOfClass:[MyDesiredController class]]) {
NSLog(@"Popping Desired Controller, Do Stuff Here");
}
return [super popViewControllerAnimated:animated];
}
Toutefois, cela ne supprime pas l'éclatement réelle du contrôleur de vue (nul retour arrêtera le contrôleur de sauter mais encore provoquer la barre de navigation pour faire apparaître ses informations et retourner NON à la shouldPop: délégué la méthode de la barre de navigation va quand même apparaître sur le contrôleur, j'ai entendu dire que cela ne se produit que lorsque vous utilisez un contrôleur de navigation, mais je n'ai pas testé cela). Pour votre situation, cependant, puisque vous souhaitez réactiver deux contrôleurs de vue, vous pouvez supprimer le second contrôleur de dernière vue de la propriété viewcontrollers du contrôleur de navigation en convertissant les contrôleurs de vue en nsmutablearray, en supprimant le contrôleur, puis en convertissant nsmutablearray revient à un tableau et le définit en tant que propriété viewcontrollers du contrôleur de navigation. Je n'ai pas testé cela mais j'ai pensé que je partagerais l'idée.