web-dev-qa-db-fra.com

Ignorer la vue depuis le contrôleur de navigation

J'ai un contrôleur de navigation avec un contrôleur de vue affichant un bouton. Le bouton est lié à un autre contrôleur de vue à l'aide d'une division Push qui ajoute automatiquement une barre de navigation supérieure avec un bouton de retour. Tout cela fonctionne bien. Appuyez sur le bouton Précédent pour sortir de la deuxième vue et revenir à la première.

J'ai un bouton sur le 2nd View Controller, qui, lorsqu'il est pressé, exécute du code et un appel délégué à nouveau au 1er View Controller. Encore une fois cela fonctionne bien.

Maintenant, j'ai juste besoin de fermer la deuxième vue du code comme si le bouton de retour avait été enfoncé. J'ai essayé d'utiliser les options suivantes: advertModalViewCcontrollerAnimated et licencié ViewControllerAnimated. dans mon menu principal).

Quelle est la bonne façon de glisser de la vue.

22
Darren

Obtenez une référence à votre UINavigationController et appelez

- (UIViewController *)popViewControllerAnimated:(BOOL)animated

dessus.

37
Stavash

En Swift, ce serait appeler la méthode

self.navigationController?.popViewControllerAnimated(true)
11
Garrett Cox

Dans Swift, vous pouvez également appeler: 

self.navigationController?.popToRootViewControllerAnimated(true)
2
jnwagstaff

Si nous utilisons Push segue, alors utilisez popViewController

@IBAction func backButtonClicked(_ sender: Any) {
    self.navigationController?.popViewController(animated: false)
}
2
A.G

Sur Objective-C est

[self.navigationController popViewControllerAnimated:YES];

pour un saut vers le premier contrôleur root

[self.navigationController popToRootViewControllerAnimated:YES];

ou est un mouvement possible vers le contrôleur spécifique

[self.navigationController popToViewController:(nonnull UIViewController *) animated:(BOOL)];

animation processus d'animation spécifique de déplacer le contrôleur. Si l'animation est false, le contrôleur apparaîtra sans animations. La UIViewController doit provenir de celle qui est sur la pile. 

1
Jan Damek