Views dynamisch erstellen

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

  • Views dynamisch erstellen

    Hallo Forum,

    die Anforderung ist, aus eingehenden XML-Informationen Dialoge und Listen zu erstellen inklusive Buttons und Menüinformationen.
    Das haben wir für Android so entwickelt, dass auf Basis einer leeren View die geforderten Objekte erzeugt wurden.

    Allerdings sollen diese Dialoge auch gespeichert und später wieder abgerufen werden können.
    Statt wie bisher die XML-Daten zu speichern und jedesmal die View neu zu füllen, dachte ich beim iPhone daran, eine Basis-View zuerstellen und anschließend eine .XIB-Datei zu erstellen, die dann geladen wird.
    So müsste die Erstellung nur einmal laufen und dies spart sicherlich bei gtroßen Liste auch viel Zeit.

    Ist das ein gangbarer Weg oder habe ich da ein Problem im Ansatz ?
    (Mmmhhh...Probleme habe ich sicher noch einige ;)

    Hat jemand Tipps oder vielleicht sogar einen Link für einen Einstieg ??
  • ich hoffe ich habe richtig verstanden was du meinst: du willst eine externe xml laden wo dann eine view gebaut wird mit elementen und das in eine xib speichern?


    also xib datein kannst du so nicht erstellen nicht nach der installation.. was aber geht das du die view mit deinen Objekten speicherst dazu must du dieses objekt zu ein NSData objekt umwandeln das geht durch NSKeyedArchiver (deine view ist schon fertig gebaut und pipapo)

    lese dir bitte dazu stackoverflow.com/questions/23…objects-in-nsuserdefaults durch

    das parsen der xml und erstellen der einzellen objekte das wird recht aufwändig vorallen weil es ja auch mit ein android system konform sein muss :D

    PS: das ist nur theoretisch habs selber nochnie getestet :P
    俺の世界にようこそ

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Plany ()

  • Hallo Plany,

    ich lade XML-Daten von einem Server. Diese XML-Daten enthalten Informationen zu Daten und Dialogfeldern. Der User startet dann irgendeine der (über das XML definierten) Aktionen, ich sende die Antwort und erhalte den nächsten Datenstrom.

    Es muss übringens nicht wie bei Android aussehen, sondern die Oberfläche soll im Gegenteil eine eindeutige iPhone App bleiben.
    Es werden auch nur wenige Objekte benötigt: Texteingabe, Label, Button, Auswahlbox und LIsten sind es im wesentlichen schon.
    Ich parse das XML und generiere die Objekte und Aktionen.

    Ich hoffte, dass ich anstelle einer mit dem IB vorbereiteten View eine als Datei vorliegende View einlesen kann.

    Aber so wie du schreibst, erstellt der IB die XIB, die dann beim Kompilieren genutzt und später gar nicht mehr gebraucht wird. Ist das korrekt so ?
  • der interface builder macht nix anderes als das was du machen willst :D eine xib datei ist auch nur eine xml datei wo position und eigenschaften von den elementen drine stehen :)

    am besten du guckst dir mal eine *.ipa (ipa = zip) datei an ... zb von ein deiner gesyncten apps in itunes :) bin gerade auf arbeit und kann dir nicht 100% genau sagen ob die xib oder eine nib datei im bundle liegt oder ob es zur binary hinzugefügt wird :)
    wenn du wieso die xml daten bei jeder neuen view einließt dann machste einfach ne abfrage (wenn du das view objekt speicherst) ist die view schon in UserDefaults gespeichert wenn ja lade die alte wenn nein parse die xml daten

    ggf mit ein kleinen versionsTag :) so kann sich das auch ändern.


    PLAN B: du machst das ganze ding einfach per webView und den WebKit von apple :) sieht aus wie eine app is aber html
    俺の世界にようこそ
  • Gibbsnich schrieb:

    Aber so wie du schreibst, erstellt der IB die XIB, die dann beim Kompilieren genutzt und später gar nicht mehr gebraucht wird. Ist das korrekt so ?

    Nein, die XIB beziehungsweise NIB-Datei enthält serialisierte Objekte. Xcode erzeugt lediglich ein kompakteres Format für die App. Ein XIB ohne Interface Builder zu erzeugen, halte ich für sehr schwierig, da das XML-Format recht komplex ist. Ich glaube auch nicht, dass das einfacher ist, als die Views direkt, ohne XIB, zu erzeugen. Du musst die XML ja sowieso parsen und weißt dann, wie die Elemente aussehen müssen. Wenn Deine Formulare ein standardisiertes Aussehen, beispielsweise so wie die iPhone-Settings haben, sollte der Ansatz über Programmcode auf jeden Fall der einfachere sein.

    Wenn Du die Beschreibungsdateien auch serverseitig erzeugen kannst, kann das etwas anderes sein. Hier kannst Du versuchen, XIBs oder besser noch NIBs über die Scripting-Bridge des Interface Builders zu bauen.
    „Meine Komplikation hatte eine Komplikation.“