Gibt es eine Möglichkeit zu stoppen Sie eine UIViewController wird knallte von einem UINavigationController ist der Stapel, wenn die backBarButtonItem getappt?
Ich habe einen UINavigationController mit einem root-view-controller und dann schieb ich ein UIViewController auf den Navigations-controller-stack. Wenn der Benutzer tippt auf die backBarButtonItem ich möchte in der Lage sein, um eine Warnung anzeigen, pop-up, wenn es bestimmte Bedingungen erfüllt und kündigen Sie den pop des view-Controllers. Zum Beispiel kann der Benutzer eine bestimmte Auswahl, sondern eine Kombination von Ihnen kann ungültig sein, so möchte ich Ihnen mitteilen, änderungen zu machen.
Weiß ich, dass ich verhindern der Benutzer eine ungültige Kombination oder eine Warnung anzeigen, pop-up, wenn die ungültige Kombination ausgewählt ist, aber ich würde lieber nicht tun. Die Benutzer können wechselnde Auswahl und können sich bewusst sein, dass eine bestimmte Kombination ungültig ist, aber ich würde lieber lassen Sie Sie wählen Sie etwas, das macht die Kombination ungültig, dann gehen Sie zu ändern, etwas anderes (und Ihnen mitteilen, wenn Sie noch keine änderungen vorgenommen, bevor Sie versuchen zu gehen, um zum vorherigen Bildschirm). Wenn ich zum Beispiel verhindern, dass Sie von der Auswahl etwas, das macht eine ungültige Kombination, dann Sie müssen möglicherweise scrollen, bis auf dem Bildschirm, etwas ändern, dann scrollen Sie wieder nach unten statt, die eine Auswahl und dann scrollen nach oben und ändern etwas.
Mit viewWillDisappear:
nicht funktioniert, weil, obwohl ich produzieren kann eine Warnung anzeigen, ich kann nicht herausfinden, einen Weg, um zu verhindern, dass die pop-Auftritt. Die alert-Ansicht zeigt aber die view-controller immer noch pops und Sie sind wieder auf der root-view-controller (mit dem alert-Ansicht anzeigen).
Gibt es eine Möglichkeit zu verhindern, dass die pop-Auftritt? Wenn nicht, ist dies etwas, Wert-Einreichung einen Fehlerbericht, oder ist etwa diese unnötige und/oder Esoterik?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese klingt wie etwas, das besser geeignet für eine Modal-View-Controller, als es für einen View-Controller auf dem Navigations-stack.
Wenn Sie verheiratet sind, es zu tun auf dem Stapel, obwohl, es wäre schön, wenn Sie könnte dies mit UINavigationControllerDelegate, aber Sie können nicht.
Ist es möglich, die Zurück-Schaltfläche deaktiviert, bis Sie die Einträge gültig sind? Vielleicht, wenn der Benutzer versucht, etwas zu geben, aber es ist ungültig, in der Nähe der oben in der Ansicht haben Sie ein Label animieren mit roten text, der dem Benutzer mitteilt, die Sie brauchen, um es zu beheben. Inzwischen ist die zurück-Taste ist deaktiviert und es erneut aktiviert werden, nachdem Sie Korrekturen vornehmen.
Oder wirklich kreativ mit, wie Ihre UI-Steuerelemente, um sicherzustellen, dass der Benutzer geben Sie niemals falsche Daten ein.
Können Sie ersetzen Sie die zurück-Taste, mit Ihrem eigenen, der die Methode aufruft, die Sie wollen in loadView
dann später
dann lassen Sie Sie gehen
Lassen Sie Sie gehen zurück, nicht nur etwas sparen, es sei denn, es ist vollständig gültig. Das ist in der Regel der Ansatz von Apple nimmt.