L'appel de popViewControllerAnimated deux fois

J'ai un UINavigationController avec une série de UIViewControllers sur elle. Dans certaines circonstances, je veux revenir exactement deux niveaux. Je pensais que je pouvais le faire en appelant popViewControllerAnimated deux fois dans une rangée, mais il s'avère que la deuxième fois que je l'appelle, c'est de ne pas éclater de rien et au lieu de retourner la valeur NULL. Ai-je besoin de stocker une référence à ma destination VC et appel popToViewControllerAnimated à la place? Je peux le faire, mais il complique mon code car je dois passer le UIViewController* autour comme je suis poussant VCs sur la pile.

Voici pertinentes de l'extrait:

UIViewController* one = [self.navigationController popViewControllerAnimated:YES];
if (...) {
    //pop twice if we were doing XYZ
    UIViewController *two = [self.navigationController popViewControllerAnimated:YES];
    //stored in "one" and "two" for debugging, "two" is always 0 here.
}

Je fais quelque chose de bizarre ici? Je veux écrire idiomatiques code, donc si la "bonne" façon est d'appeler popToViewControllerAnimated, ou tout autre chose, je vais joyeusement le changer.

InformationsquelleAutor Mike Kale | 2009-07-14