Delegieren vs Unwind Segue für die Übergabe von Daten an Übergeordnete Szene

Seit iOS 6, entspannen Sie leitet über zur Verfügung gestanden haben, um zu navigieren, die Szene-Hierarchie. Ich bin versucht, zu entscheiden, Reiniger/besser/bevorzugt/mehr wartbar-Methode für die übergabe von Daten zu einem übergeordneten view-controller. Es gibt einige Fragen, dass diese aus technischer Sicht (z.B. "wenn ich eine Entspannung brauche ich noch ein delegieren"), aber ich kann Sie nicht finden viel, die Adressen der Fragen der vor - /Nachteile.

Option 1: verwenden Sie einen Delegaten sind.

  • Getan, indem in der übergeordneten Ansicht-controller als Delegierter die Einhaltung eines Protokolls.
    • Kind ruft das Protokoll-Methode, um die Daten zurückzugeben.
    • Wenn die Daten die Validierung erforderlich ist, durch die Eltern, Rückgabewert/dict benötigt, um Kind zu behandeln Fehler.
  • Overhead: Protokoll-definition und eine Methode in der übergeordneten (für Daten-Validierung und-Erhalt).

Option 2: verwenden Sie ein unwind segue

  • Erfolgt durch aufrufen der unwind segue vom Kind.
    • Kind fügt eine überleitung auf Ihre Szene, indem eine Taste oder das storyboard selbst zu Exit zu benennen und die segue so kann es mit performSegueWithIdentifier:sender
    • Übergeordneten implementiert returnFromSegueName (Benutzer namens-Methode verknüpft mit der segue) zu greifen, die Daten vom Kind.
    • Daten-Validierung kann allerdings nur umgesetzt werden, indem auch die Umsetzung canPerformUnwindSegueAction:fromViewController:withSender
      • Daten-Validierung scheitern, wird eine andere Eigenschaft für das Kind ist diese Methode akzeptiert nur einen BOOL-Wert zurückgeben.
  • Aufwand: Zwei Methoden, eine zusätzliche Eigenschaft, plus Storyboard-Spielereien.

Insgesamt Delegierten das Gefühl, wie die cleaner Weg zu gehen, aber vielleicht auch antiquiert. Bin ich falsch zu sein gelehnt in diese Richtung?

InformationsquelleAutor El Tea | 2013-10-24
Schreibe einen Kommentar