Comment puis-je réinitialiser un UINavigationController?

J'ai un problème impliquant la UINavigationController.

J'ai une application qui ont trois contrôleurs de vue que je suis passer entre l'utilisation de la navigation contrôleurs de push et pop de la fonctionnalité.

Le problème est le suivant:
Je suis dans le troisième point de vue du contrôleur et fait un appel à

[self.navigationController popToRootViewControllerAnimated:YES];

ce qui m'amène à la première vue-contrôleur (ce qui est exactement ce que je veux) mais quand j'essaie ensuite de naviguer vers le second point de vue du contrôleur, je me retrouve dans le troisième pour une raison quelconque.

Est-il de toute façon vous pouvez réinitialiser la manette de navigation, ou suis-je en train de faire cela dans le mauvais sens?

Voici le code que j'utilise pour push et pop la manette de navigation:

Le code suivant est appelé dans la vue racine contrôleur lorsque l'utilisateur décide de lancer l'appareil photo.

if(self.cameraViewController == nil)
{
        CollageCameraViewController *camView = [[CollageCameraViewController alloc] init];//WithNibName:nil bundle:[NSBundle mainBundle]];
        self.cameraViewController = camView;
        [camView release];

}
[self.navigationController pushViewController:self.cameraViewController animated:NO];

Le code suivant est appelé à partir de CollageCameraViewController (seconde) après que l'utilisateur a pris sa fotos:

if(self.renderView == nil)
{
    CollageRenderViewController *renderViewController = [[CollageRenderViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
    self.renderView = renderViewController;
    [renderViewController release];
}
[self.navigationController pushViewController:self.renderView animated:YES];

Le code suivant est appelé à partir de CollageRenderViewController lorsque l'utilisateur décide d'aller retour à la page principale (root) vue:

[self.navigationController popToRootViewControllerAnimated:YES];

Maintenant, si j'essaie de pousser CollageCameraViewController de nouveau, je me retrouve dans CollageRenderViewController au lieu de cela, pourquoi est-ce?

Cheers,
Andreas

  • Poster une partie de votre code afin que nous puissions voir comment vous êtes poussant / popping votre point de vue contrôleurs et exactement ce que vous êtes pousser et de les faire éclater.
InformationsquelleAutor drisse | 2009-10-23