2 votes

Retourner deux UIViewControllers en utilisant des segues

Dans mon application iOS, j'ai quatre UIViewController et, pour les besoins de l'argumentation, appelons-les 1, 2, 3 et 4. J'ai des séquences qui mènent progressivement de l'une à l'autre (1->2, 2->3, 3->4). Cependant, en 4, je veux qu'il y ait un bouton qui puisse revenir à 1. Je n'ai imaginé qu'une seule façon de le faire, mais je n'ai pas réussi à trouver comment la mettre en oeuvre...

Cette solution consisterait à avoir une segue reliant directement 4->1, et lorsque la segue est appelée, supprimer 2 et 3 de la mémoire (sinon l'utilisateur pourrait continuer à accumuler des données). UIViewController puisqu'aucun d'entre eux n'est supprimé). Je ne sais pas comment les supprimer de la mémoire puisque je n'ai pas de variables qui pointent vers eux (c'est-à-dire qu'ils ont été créés lorsque leurs segments respectifs ont été appelés, donc pour autant que je sache, je n'ai pas d'accès direct à eux).

Je ne sais pas si c'est la meilleure façon de procéder, mais si vous pouvez trouver comment faire (ou une meilleure façon), toute aide est appréciée :)

2voto

Ryan Poolos Points 8676

Vous devez utiliser un UINavigationController si ce n'est pas déjà le cas.

Ensuite, dans votre 4ème vue, vous avez juste besoin d'un bouton avec un sélecteur qui fait ce qui suit :

- (IBAction)goBackToFirstView:(id)sender {
    [self.navigationController popToRootViewControllerAnimated:YES];
}

Cela gérera toute la mémoire pour vous et vous renverra au premier contrôleur de vue en faisant sauter tous les éléments.

0voto

mweathers Points 640
    NSArray *array = [NSArray arrayWithObject:[navigationController.viewControllers objectAtIndex:navigation.viewControllers.count-1]];
    navigationController.viewControllers = array;

Ensuite, faites la transition.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X