Hi,
ich habe hier gerade eine interessante Frage wo ich mal eure Meinungen hören möchte:
Ich erzeuge ein Einstellungen-Popover mit einer TableView. Die Einstellungen die dort drin erscheinen, werden dynamisch aus dem Netz generiert. Das bedeutet, nach dem Öffnen des Popover wird zunächst ein Webrequest gestartet der die Einstellungen holt. Diese Einstellungen werden in einer eigenen Klasse nennen wir sie einfach Settigs gespeichert.
Das kann bei schlechter Verbindung natürlich ein wenig dauern. Deshalb brauche ich einen Activity-Indicator mit Abbruch-Button. Diesen habe ich mir auch schon vor langer Zeit mal gemacht. Der ist ziemlich einfach. Er legt einfach ein halbtransparentes View über den ganzen Screen und zeigt in der Mitte dann ein viereckiges View mit Titel und Abbruch-Button. Damit ist gewährleistet, dass man während der Activityview dargestellt wird nichts anderes angeklickt werden kann als der Abbruch Button (Welcher beim Anklicken ein didCancel() an sein Delegate schickt).
Soweit zur Vorgeschichte. Jetzt zur eigentlich Frage.
Wenn man dieses Konzept nach MVC lösen würde, dann müßte der PopoverVewiController die Klasse Settings erzeugen, den ActivityView erzeugen und darstellen und dann eine Methode load in den Settings aufrufen, welche wiederum asynchron einen Webservice startet und beim beenden oder beim Abbruch via Delegate den PopoverViewController informiert, welcher dann die Einsellungen anzeigen kann. Das bedeutet aber einen ganz schön großen Aufwand an hin und hergeschicke von Messages.
Wäre es nicht einfacher das alles in die Settingsklasse zu verlagern? Also der PopoverViewController erzeugt einfach eine Klasse Settings und ruft dann einen Load auf, der erst zurück kommt, wenn entweder abgebrochen wurde (Load liefert false zurück) oder die Settings geladen sind (load liefert true zurück).
Das würde aber bedeuten, das die Settings in Ihrem load den ActivityView erzeugen und darstellen muss und dann in einem seperaten Thread den Webservice starten. Der load muss jetzt aber solange warten bis entweder der webservice fertig ist oder aber der Abbruch Button geklickt wurde. Kann man sowas machen oder ist das so richtig schlechter code? Wenn ja, wie macht man es am elegantesten?
Oder meint ihr das ist sowiso Käse und nur MVC ruled?
Gruß
Claus
ich habe hier gerade eine interessante Frage wo ich mal eure Meinungen hören möchte:
Ich erzeuge ein Einstellungen-Popover mit einer TableView. Die Einstellungen die dort drin erscheinen, werden dynamisch aus dem Netz generiert. Das bedeutet, nach dem Öffnen des Popover wird zunächst ein Webrequest gestartet der die Einstellungen holt. Diese Einstellungen werden in einer eigenen Klasse nennen wir sie einfach Settigs gespeichert.
Das kann bei schlechter Verbindung natürlich ein wenig dauern. Deshalb brauche ich einen Activity-Indicator mit Abbruch-Button. Diesen habe ich mir auch schon vor langer Zeit mal gemacht. Der ist ziemlich einfach. Er legt einfach ein halbtransparentes View über den ganzen Screen und zeigt in der Mitte dann ein viereckiges View mit Titel und Abbruch-Button. Damit ist gewährleistet, dass man während der Activityview dargestellt wird nichts anderes angeklickt werden kann als der Abbruch Button (Welcher beim Anklicken ein didCancel() an sein Delegate schickt).
Soweit zur Vorgeschichte. Jetzt zur eigentlich Frage.
Wenn man dieses Konzept nach MVC lösen würde, dann müßte der PopoverVewiController die Klasse Settings erzeugen, den ActivityView erzeugen und darstellen und dann eine Methode load in den Settings aufrufen, welche wiederum asynchron einen Webservice startet und beim beenden oder beim Abbruch via Delegate den PopoverViewController informiert, welcher dann die Einsellungen anzeigen kann. Das bedeutet aber einen ganz schön großen Aufwand an hin und hergeschicke von Messages.
Wäre es nicht einfacher das alles in die Settingsklasse zu verlagern? Also der PopoverViewController erzeugt einfach eine Klasse Settings und ruft dann einen Load auf, der erst zurück kommt, wenn entweder abgebrochen wurde (Load liefert false zurück) oder die Settings geladen sind (load liefert true zurück).
Das würde aber bedeuten, das die Settings in Ihrem load den ActivityView erzeugen und darstellen muss und dann in einem seperaten Thread den Webservice starten. Der load muss jetzt aber solange warten bis entweder der webservice fertig ist oder aber der Abbruch Button geklickt wurde. Kann man sowas machen oder ist das so richtig schlechter code? Wenn ja, wie macht man es am elegantesten?
Oder meint ihr das ist sowiso Käse und nur MVC ruled?

Gruß
Claus
2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen

