Dans une application iPhone basée sur UINavigationController, dans une méthode, je voudrais effectuer l'équivalent programmatique du bouton de retour enfoncé et revenir à une vue.
c'est-à-dire appuyez automatiquement sur le bouton Jobs comme vu ici:
Y a-t-il un appel iOS générique que je peux passer ou des informations supplémentaires sont-elles nécessaires?
ios
objective-c
button
uinavigationcontroller
Oberbaum
la source
la source
[self.navigationController popViewControllerAnimated:YES];
mais cela ne fait rien, mais il y a une alerte lorsque vous appuyez sur ce bouton qui fonctionne.En supposant que vous ne souhaitiez pas réellement APPUYER sur le bouton par programme, mais simplement copier le résultat de la pression sur le bouton, vous devez indiquer au contrôleur de navigation de faire apparaître le contrôleur de vue actuel.
[self.navigationController popViewControllerAnimated:YES];
Cela le supprimera de la pile et vous ramènera au contrôleur de vue précédent.
la source
Swift 3.0
self.navigationController?.popToRootViewController(animated: true)
self.navigationController?.popViewController(animated: true)
Swift 2.3
self.navigationController?.popToRootViewControllerAnimated(true)
self.navigationController?.popViewControllerAnimated(true)
la source
Tu devrais appeler
popViewControllerAnimated:
ce qui est l'opposé de l'ajout de contrôleurs de vue avec
pushViewController:animated:
la source
[self.navigationController popViewControllerAnimates:YES];
est la meilleure option, mais si vous n'êtes ni sur la même classe de contrôleur de vue ou si votre délégué change avant que votre méthode de bouton de retour ne soit appelée, vous pouvez également essayer -
vous devez d'abord définir le bouton retour ---
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)]; [[self navigationItem] setBackBarButtonItem: newBackButton]; [newBackButton release];
puis dans la méthode backButtonTapped, vous pouvez appeler -
[self.navigationController pushViewController:desiredViewController animated:YES];
la source