Vorheriges View nach Replace Segue

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Vorheriges View nach Replace Segue

    Hallo Entwickler,

    meine iPad App arbeitet mit einem SplitViewController und Replace Segues.
    Wenn man im MasterViewController auf einen Eintrag tippt, wird der DetailViewController durch den dazugehörigen ViewController ersetzt.
    Jeder DetailViewController ist ein NavigationController und so gibt es einen Navigation Stack.

    Das Problem dabei ist, dass nicht das vorherige View geladen wird.
    Bsp: Im Bereich 1 wird eine neue View auf den Navigation Stack gepusht. Dann wähle ich den Bereich 2. Wenn ich wieder den Bereich 1 wähle, wird der .topViewController des NavigationController angezeigt und nicht die vorhin gepushte View.

    Kann man sich irgendwie die jeweilige View merken und bei dem Replace die alte durch diese ersetzten?
  • Du wirst dir deine Hierarchie eben selbst merken müssen wenn eine View verschwindet und beim erscheinen des neuen dessen gespeicherten Zustand wiederherstellen.
    Eine Custom Seque brauchst du dazu IMO nicht.

    Kannst aber evtl. in prepareForSeque den letzten Zustand schon wieder erzeugen.
    Zum Beispiel Pushen der nötigen Views (in dem Fall dann wahrscheinlich ohne Animation damit der Zustand sofort so gegeben ist), ggf. diversen Eigenschaften der UI Elemente setzen usw.
  • Ich habe es jetzt so gemacht, dass wenn man eine Row im TableView des MasterViewController auswählt, an den Controller, der gerade auf dem Navigation Stack des DetailViewController liegt, eine Nachricht gesendet wird, dass der sein "State" speichern soll.
    Ich würde den "State" wiederherstellen, wenn man die neue Row auswählt. Aber wie pushe ich einen bestimmten ViewController direkt auf den Navigation Stack?