erkennen, drücken Sie lange auf UINavigationItem die zurück-Taste
Möchte ich hinzufügen, dass die Funktionalität auf meinen Rücken Knöpfe durch meine UINavigationController-basierte Anwendung, wo lange drücken der zurück-Taste wird das pop-Wurzeln. Allerdings kann ich nicht herausfinden, wo das Anhängen der gesture-recognizer. Ich Unterklasse UINavigationBar und versuchen, zu erkennen, wenn die Taste lange drücken, ist in der linken button-region?
Ich habe von Leuten gehört, das hinzufügen einer ähnlichen Funktionalität vor. Jemand irgendwelche Ideen?
InformationsquelleAutor kevboh | 2011-06-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube UIGestureRecognizers können nur Hinzugefügt werden UIViews und Unterklassen von UIViews.
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html
Die Schaltfläche "zurück" ist ein UIBarButtonItem, die stammt von NSObject. Daher werden Sie nicht in der Lage sein zu befestigen, gestik-Erkennung, um eine standard-zurück-button mit
Können Sie jedoch hinzufügen einer benutzerdefinierten Ansicht, ein UIBarButtonItem. Eine benutzerdefinierte Ansicht könnte genauso gut ein UIView, UIButton, UILabel, etc.
Beispiel:
Müssen Sie vorsichtig sein, da jedoch das festlegen von Eigenschaften auf backBarButtonItem gilt, um die nächste Ansicht, dass Sie drücken. Also, wenn Sie anzeigen, dass drückt die anzeigen B und Sie wollen, dass die Geste erkannt, wenn Sie Tippen Sie auf zurück in der Ansicht B. müssen Sie es einrichten in Sicht A.
Ich weiß, diese Frage ist alt, aber ich kam mit einer Lösung. Anstatt zu versuchen, fügen Sie die gesture recognizer auf die Schaltfläche selbst (das wäre ideal), ich habe es auf die
self.navigationController.navigationBar
und dann in der action-Methode verwenden Sie dielocationInView
zu sehen, wenn ich über die zurück-Taste. Ich war nicht ganz sicher, wie identifizieren Sie die zurück-Taste, genau, so bin ich zu ungeschickt, nur greifen die ersten Untersicht mit einer x-Koordinate, die kleiner als einige beliebiger Wert, aber es scheint vielversprechend. Wenn jemand einen besseren Weg, um den Rahmen der zurück-Taste, lassen Sie es mich wissen.Folgte ich einen etwas anderen Weg, dachte, ich würde teilen. Die oben genannten Antworten sind in Ordnung, aber wirklich, wenn die Taste lange drücken, wird in den führenden 1/3 der nav-bar, das ist gut genug für mich:
Hier ist meine Lösung:
In appDelegate (die "Besitzer" der nav bar in meiner app), In applicationDidFinishLaunchingWithoptions:
Holen Sie sich die nav-Leiste anzuzeigen, und fügen Sie den gesture-recognizer, um die ganze Ansicht:
Dann in appDelegate, in -(void) backButtonLongPress:(id) sender
Überprüfen, um zu sehen, ob die Geste tritt im Rahmen der back-Taste: