Finden Sie heraus, wenn der Benutzer betätigt die Schaltfläche "zurück" in uinavigationcontroller?
Wenn eine Ansicht geladen, ich möchte sehen, ob es ist, weil der Benutzer betätigt die Schaltfläche "zurück". Wie kann ich das überprüfen?
Wollen Sie wissen, ob es einen Benutzer initiiert knallen oder knallen im Allgemeinen?
Es könnte gut sein, um näher auf Ihr Ziel. Möglicherweise gibt es einen einfacheren Weg, das zu tun, was Sie zu tun versuchen. Wenn Sie brauchen, um zu wissen, ob irgendein Wert geändert wurde oder in der zweiten Ansicht, für instance, Sie sollten einfach schauen, dass Wert.
Popping ist, was ich will erzählt werden.
Es könnte gut sein, um näher auf Ihr Ziel. Möglicherweise gibt es einen einfacheren Weg, das zu tun, was Sie zu tun versuchen. Wenn Sie brauchen, um zu wissen, ob irgendein Wert geändert wurde oder in der zweiten Ansicht, für instance, Sie sollten einfach schauen, dass Wert.
Popping ist, was ich will erzählt werden.
InformationsquelleAutor Andrew | 2011-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige Weg, dies zu tun, so dass Sie wissen, für sicher, dass es die zurück-Taste ist, um eine benutzerdefinierte Schaltfläche erstellen. Wenn Sie nicht wissen, wie das geht, Lesen Sie in diesem tutorial. Es wird nicht genau so Aussehen wie die normalen zurück-button, aber in der Nähe. Wenn Sie weitere Hilfe benötigen, schreiben Sie einen Kommentar
meinst du, die anderen Andrew, nicht Andrew ' s andere Antwort-Sie sind zwei verschiedene Andrews. Aber du hast Recht, die andere Antwort ist weit überlegen; die vorliegende ist eine Menge zusätzlicher Arbeit durch Vergleich.
Verdammt du hast Recht,.. ich dachte, es war seltsam, dass er antwortete zweimal, aber das erklärt
Diese Antwort ist falsch und sollte entfernt werden, indem das Plakat.
Mein Gott, Sie sind alle benannt, Andrew!
InformationsquelleAutor Andrew
Die beste Lösung, die ich gefunden habe zu erkennen ob ein UINavigationController die zurück-Taste (pre-iOS 5.0) ist, überprüfen Sie, dass die aktuelle view-controller ist nicht in der in der navigation-controller view-controller-stack.
Ist es möglicherweise sicherer, überprüfen Sie diese Bedingung in
- (void)viewDidDisappear:(BOOL)animated
als logisch, von der Zeit, die Methode aufgerufen wird, wäre es äußerst wahrscheinlich, dass die view-controller vom stack entfernt.Pre-iOS 5.0:
iOS 5.0+ können Sie -didMoveToParentViewController:
Ich habe aktualisiert mein Antwort für eine neue Methode Hinzugefügt, im iOS 5.0.
Diese wird auch aufgerufen wird, wenn der VC geschoben wird (zumindest bei iOS 6).
didMoveToParentViewController; keine gute Lösung ist, wird es auch nennen, wenn diese Ansicht angezeigt.
Sie müssen überprüfen, ob der Elternteil den nil, um zu bestimmen, ob die Ansicht Hinzugefügt oder entfernt wurde.
InformationsquelleAutor Andrew
in Ihrer Methode viewWillDisappear überprüfen
Dies ist nur für die post iOS 5
Als alternative zu dieser, inspiriert von Andrew ' s Antwort, Sie können etwas tun, bevor der Umzug durch überschreiben
willMoveToParentViewController:
stattdidMoveToParentViewController:
.Diese Lösung funktioniert nicht, es sei denn in iOS 8.
Weise bessere Methode, als die Programmierung der benutzerdefinierten Taste. Danke.
es bedeutet nicht exakt, wenn der Benutzer drückt die zurück-Taste. Es gibt Tonnen von anderen Fällen, wenn es ausgelöst
InformationsquelleAutor zach
UINavigationController hat eine
delegate
Eigenschaft, dass Fragen der Delegierten Rückrufe. Bitte sehen die iOS-Referenz hier.Den Delegierten nicht über einen "zurück-Taste gedrückt" Rückruf, sondern es sagt Ihnen, wenn etwas Los ist, erscheinen auf dem navigationsstapel. Wenn Sie die zurück-Taste drücken, dann "knallen" die top-view-controller aus dem Stapel, so es wird Ihnen sagen, dass die Ansicht angezeigt wird. Ich denke, dies ist die callback-würde Sie suchen.
Haben, könnten Sie einige einfache Logik zu prüfen, ob es den view-controller "interessieren", und dann könnten Sie eine Benachrichtigung senden, et al.
Ich sagte, dass UINavigationController hat einen Delegierten. Wenn UINavigationController ist die Verwaltung Ihres view-Hierarchie, es wird in der Tat Rückruf der Delegierten, falls diese eingestellt ist.
Ich bin versucht, dies zu tun. Beim sichern, leider, nennt es die "neue" view-controller [die gesichert] -viewWillAppear, bevor die delegate-Methode -navigationController:willShowViewContoller:animiert: wird aufgerufen, für die gleiche viewController...
InformationsquelleAutor makdad
Der Vollständigkeit halber, vermischen sich die zwei die meisten von Ihnen positiv bewertet werden Antworten (Eins, Zwei) in Swift:
will
verwendendid
da es Bildschirmrand pop-Geste.InformationsquelleAutor derpoliuk
Dies ist ein etwas anderes Szenario, aber ich dachte, die Lösung könnte anderen helfen.
In meiner situation, ich hatte einen UINavigationController innerhalb einer UIPopoverController. Ich brauchte, um zu erkennen, ob der Benutzer auf die zurück-Taste, oder klickt außerhalb des popover. Um dies zu tun, überprüfte ich die visibleViewController Eigenschaft in viewWillDisappear. Wenn der view-controller ist immer noch der visibleViewController beim schließen, dann wird das popover geschlossen und durch ein anderes Mittel. Wenn der view-controller ist nicht die visibleViewController beim schließen, dann die zurück-Taste gedrückt wurde.
Habe ich versucht mithilfe von zach, der die Lösung, aber isMovingFromParentViewController gibt true zurück, für beide Fälle.
Ich überprüft, das funktioniert in iOS 5+
Ich hoffe, das hilft.
InformationsquelleAutor Matt Becker
Erstellen Sie eine benutzerdefinierte bar zurück-Taste und legen Sie das Ziel,
Schritt 1: Fügen Sie diese Methoden, um Ihre Klasse
Schritt 2: Rufen Sie [self addBackBarButton]; in der viewDiDLoad-Methode
Erhalten Sie die Aktion in backButtonClicked Methode. Sie können spielen, um mit es wie Sie wollen.
Prost!
InformationsquelleAutor aToz