Ich habe eine CustomPresentationController
, animiert in und out mit benutzerdefinierten Animationen;iOS - Dismiss präsentiert Ansicht Controller berühren außerhalb seiner Ansicht
Dieser spezielle Controller wird präsentiert, mehr weniger bei 50% der Bildschirmgröße, und wenn ich es präsentiere, füge ich dem presentingViewController
eine schattengraue Ansicht hinzu, so dass es etwas Tiefe hinzufügt.
kann ich entlassen nur die presentedViewController
wenn ich die cancel
Taste in der NavBar
tippen, die ich die Standard-dismiss(:)
Methode aufrufen.
Was ich versuche zu erreichen, einen Hahn außerhalb der presentedViewController
zu erkennen, vielleicht innerhalb der Grauzone, so kann ich die presentedViewController
, irgendwie entlassen wie ein ActionSheet
entlassen, aber ich habe versäumt, es zu tun. Lassen Sie mich erklären, was ich bisher versucht habe.
Ich habe versucht, eine UITapGestureRecognizer
zur Schatten-Grau-Ansicht hinzuzufügen, aber da ich einen anderen Controller präsentiere, könnte die App-Engine denken, dass die Schatten-Ansicht nicht auf der obersten Hierarchieansicht ist möglicherweise nicht zugänglich Es blockiert also den Erkenner - wenn ich ihn antippen, werden die Gestengriffe nicht ausgelöst.
Ich implementiere jetzt zusätzlich ein Wischen nach unten, um zu entlassen, was ich leicht machen kann, aber ich wollte wirklich die Tipp-außerhalb-Funktion auch funktionieren.
Irgendein Hinweis, wie kann ich das angehen?
Die apps Bild ist folgende:
hmm ... Ich habe diese Eigenschaft nie benutzt, das könnte der Grund sein, warum ich das nicht herausfinden konnte: D Ich werde es versuchen und ich werde dir Feedback geben –
Es hat nicht funktioniert. Wenn diese Eigenschaft gesetzt wird, wird die Gestenerkennung niemals ausgelöst. Es könnte sein, dass die Ansicht für den Benutzer nicht verfügbar ist, da sie nicht in der Hierarchie der obersten Ansicht ist. Es sollte eine Möglichkeit geben, Berührungen irgendwo auf dem Bildschirm unabhängig von der dargestellten Ansicht zu erkennen, dann würde ich prüfen, ob der Berührungsort über dem angezeigten Popup lag, dann wusste ich, wann zu entlassen war –