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.
Obtenez une référence à votre UINavigationController et appelez
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
dessus.
En Swift, ce serait appeler la méthode
self.navigationController?.popViewControllerAnimated(true)
Dans Swift, vous pouvez également appeler:
self.navigationController?.popToRootViewControllerAnimated(true)
Si nous utilisons Push segue, alors utilisez popViewController
@IBAction func backButtonClicked(_ sender: Any) {
self.navigationController?.popViewController(animated: false)
}
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.