2016-12-02 2 views
1

aufgerufen wurde Ich entwickle eine App, die einen Server-Aufruf ruft ein Array zurück und zeigt es in einer Tabellenansicht. Die App verfügt über zwei View-Controller (wir nennen sie VC1 und VC2) innerhalb eines Navigationscontrollers, sodass VC1 zu VC2 wechselt. VC1 erhält vom Benutzer eine Eingabe und validiert die Eingabe in sentPerformSegueWithIdentifier. Wenn gültig und in prepareForSegue, ruft VC1 eine VC2-Methode mit dem Ziel-VC auf, die das Array vom Server abruft und in einer Tabellenansicht anzeigt.Gibt es eine Möglichkeit, ein Segment zu stoppen, nachdem prepareForSegue

Jetzt bin ich mit dem Problem konfrontiert, dass das Array möglicherweise leer ist und ich am Ende eine leere Tabelle anzeigen.

Kann ich verhindern, dass die leere Tabelle angezeigt wird, oder soll ich den Server innerhalb von "suffaryPerformSegueWithIdentifier" in VC1 aufrufen und das Segment insgesamt anhalten? Ich bin verwirrt, weil das Array das Modell von VC2 ist, so dass es seltsam erscheint, den Serveraufruf von VC1 zu initiieren, um Daten abzurufen, die Teil des VC2-Modells sind. Gibt es eine Möglichkeit, den Übergang zu stoppen, nachdem prepareForSegue aufgerufen wurde?

Antwort

1

UIKit ruft die Delegate-Methode shouldPerformSegueWithIdentifier:sender: vor dem Aufruf prepareForSegue:sender: auf. Geben Sie NO von dieser Methode zurück, wenn Ihr Array leer ist.

+0

Dank @ScottAhten, für Ihre Antwort. Aber meine Frage ist (repharssing es): um false von sentPerformSegueWithIdentifier zurückzugeben: Absender: Ich muss den Serveraufruf in VC1 initiieren und Daten auffüllen, die zu VC2 gehören. Verstoße ich dabei nicht das MVC-Muster? – Azul

+0

VC1 muss wissen, ob Daten vorhanden sind. Wenn Sie die tatsächlichen Daten gleichzeitig abrufen, verringert sich die Anzahl der erforderlichen Netzwerkanrufe. Das Modell wird von VC1 abgerufen und zur Anzeige an VC2 übergeben. Also würde ich sagen: "Nein." Dies ist keine Verletzung von MVC. –

+0

Danke @ScottAthen. Das scheint der vernünftigste Weg zu sein. – Azul

Verwandte Themen