Rufen Sie unter iOS programmgesteuert die Zurück-Taste des Navigationscontrollers auf


84

In einer iPhone-App auf UINavigationController-Basis möchte ich in einer Methode das programmatische Äquivalent der Zurück-Taste ausführen, die gedrückt wird, und eine Ansicht zurückgehen.

dh automatisch die Jobs-Taste drücken, wie hier zu sehen:

Navigationscontroller-Bild

Gibt es einen allgemeinen iOS-Anruf, den ich tätigen kann, oder sind weitere Informationen erforderlich?

Antworten:


188

UINavigationControllerDie -popViewControllerAnimated:Methode sollte tun, was Sie wollen:

[navigationController popViewControllerAnimated:YES];

12
Super, danke an Steve und Niels. Die von mir verwendete Lösung war [self.navigationController popViewControllerAnimated: YES]; einfach;)
oberbaum

Dies funktioniert hervorragend, mit Ausnahme von Viewcontrollern, die auf uitabbar hinzugefügt wurden. irgendwelche Hinweise??
Virata

1
Ich habe hinzugefügt, [self.navigationController popViewControllerAnimated:YES];aber es tut nichts, es gibt jedoch eine Warnung beim Tippen auf die Schaltfläche, die funktioniert.
Mohsin.mr

Hmm, ich erhalte einen leeren Bildschirm, eine nicht reagierende App und Folgendes in der Konsole: "Beenden eines Navigationsübergangs in einem unerwarteten Zustand. Der Unteransichtsbaum der Navigationsleiste wird möglicherweise beschädigt."
Kurt

24

Angenommen, Sie möchten die Schaltfläche nicht programmgesteuert DRÜCKEN, sondern einfach das Ergebnis des Drückens der Schaltfläche kopieren, sollten Sie den Navigationscontroller anweisen, den aktuellen Ansichtscontroller zu öffnen.

[self.navigationController popViewControllerAnimated:YES];

Dadurch wird es vom Stapel entfernt und Sie kehren zum vorherigen Ansichts-Controller zurück.


21

Swift 3.0

Zurück zur Stammansicht

self.navigationController?.popToRootViewController(animated: true)

Zurück zur vorherigen Ansicht

self.navigationController?.popViewController(animated: true)

Swift 2.3

Zurück zur Stammansicht

self.navigationController?.popToRootViewControllerAnimated(true)

Zurück zur vorherigen Ansicht

self.navigationController?.popViewControllerAnimated(true)

7

Sie sollten anrufen

popViewControllerAnimated:

Dies ist das Gegenteil von Hinzufügen von View Controllern mit pushViewController:animated:


6
[self.navigationController popViewControllerAnimates:YES];

ist die beste Option, aber wenn Sie sich noch nicht in derselben View-Controller-Klasse befinden oder Ihr Delegat Änderungen vor dem Aufruf Ihrer Back-Button-Methode vornimmt, können Sie auch Folgendes versuchen:

Zuerst müssen Sie den Zurück-Button definieren ---

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)];

[[self navigationItem] setBackBarButtonItem: newBackButton];

[newBackButton release];

und dann können Sie in der backButtonTapped-Methode-- aufrufen

[self.navigationController pushViewController:desiredViewController animated:YES];
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.