MainView mit 2 "DetailViews" ?

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

  • MainView mit 2 "DetailViews" ?

    Anfängerfrage :
    Wie kann ich am sinnvollsten einer Haupt-View (mit mehreren TextField, Button, Slider) eine weitere View verpassen (mit einem Button auszuwählen), um zusätzliche Texteingabefelder darzustellen ?

    Die Eingaben des "DetailView" sollen mit dem Haupt-View verknüpft werden.

    Kann die eine View auf die Daten der anderen View zugreifen ?

    Vielen Dank für Eure Hilfe sonst werd ich noch verrückt ! :sick:
  • Zum Verständnis helfen die Dokumente
    "iPhone OS Programming Guide",
    "View Controller Programming Guide for iPhone OS" und
    "iPhone Human Interface Guidelines"

    Alles in Xcode unter "Help" + "Documentation" zu finden.

    Und Kommunizieren zwischen zwei Instanzen geht wunderbar per Delegates, aber besser nicht zwischen den Views, sondern, wie von Michael schon angedeutet, ungefähr so:

    Model <-------> Controller <-------> View

    Und für Dich besonders wichtig die Klasse UIViewController...

    Gruss und viel Spass beim Lesen, Jörg
  • Delegates sind allerdings nicht zur Kommunikation gedacht, sondern als (bessere) Alternative zur Ableitung zur Anpassung des Verhaltens. (Gut, Data-Sources sind eine verwandte Form, aber vom Grundgeanken her.)
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Schläft der Amin auch mal ? ;)
    Kaue gerade Deine neue Auflage durch...einmal wird aber fürs Verständnis sicher nicht reichen..ist keine Kritik nur muss ich mich erstmal an die Denkweise von Obj-C "gewöhnen".

    Zum Thema : Sollte für jedes View ein eigener Controller gestellt werden, oder ist es sinnvoller mehrere Views von einem Controller zu steuern.

    Danke, danke, danke für eure Hilfe, aber die Lernkurve ist ganz schön steil am bitteren Anfang....
  • Original von jus
    Zum Thema : Sollte für jedes View ein eigener Controller gestellt werden, oder ist es sinnvoller mehrere Views von einem Controller zu steuern.

    Ich würde sagen, kommt drauf an. Je nachdem, wie die zu lösende Aufgabenstellung ist, ist es mal sinnvoller einen Controller zu nehmen, mal ist es sinnvoller mehrere Controller zu nehmen.

    Michael
  • Original von jusZum Thema : Sollte für jedes View ein eigener Controller gestellt werden, oder ist es sinnvoller mehrere Views von einem Controller zu steuern.


    Na ja, zu jedem View Controller "gehört" immer genau ein View.

    Aber:
    Nun ist es allerdings so, das ein View Subviews beinhalten kann. Und das sind dann z.B. auch Textfelder, Buttons, Labels, Table Views (!), etc.
    Und ein Table View enthält Table View Cells (die auch von UIView abgeleitet sind...)

    Also im Groben und Ganzen kann ich das Dir jetzt nur mit einem klaren Jein beantworten.
    Oder anders ausgedrückt: Du musst Dich da durch die von mir aufgelisteten Dokumente durcharbeiten.

    Gruss, Jörg
  • Original von jus
    O.K. die Views habe ich hinbekommen, jetzt fehlt mir nur noch eine sinnvolle Möglichkeit um die Dateneingaben von einem View in das andere zu übergeben. Amin meinte delegates sind nicht der korrekte Weg ?

    Ich nehme an, du hast jetzt einen ViewController, welcher deine beiden Views (und die Elemente darin) verwaltet, ja?

    Wenn dem so ist kennt der ViewController den Inhalt der Elemente, welche du synchronisieren (o.ä.) willst, und er ist auch fürs Einblenden des einen oder anderen Views zuständig. Dann kannst du z.B. einfach in jener Methode, wo der eine View gegen den anderen getauscht wird, deine TextFelder beliebig befüllen. :)
    Widgetschmie.de • Life is too short for gadgets
  • Original von jus
    Schläft der Amin auch mal ? ;)
    Kaue gerade Deine neue Auflage durch...einmal wird aber fürs Verständnis sicher nicht reichen..ist keine Kritik nur muss ich mich erstmal an die Denkweise von Obj-C "gewöhnen".

    Ich habe Jahre gebraucht …

    Original von jus
    Zum Thema : Sollte für jedes View ein eigener Controller gestellt werden, oder ist es sinnvoller mehrere Views von einem Controller zu steuern.

    Geschieht das nicht im Buch? Ich zeige ja auch die verschiedenen Controller auf und deren Einsatzzwecke. Da sind sicher auch welche mit mehreren Views dabei.

    Grundsätzlich:
    a) Du entscheidest dich "vertikal", ob etwas in die Controllerschicht als Bestandteil von MVC gehört. Entgegen manch anderer Verlautbarung finde ich das übrigens häufig eine Wertungsfrage. Aber meist ist es eindeutig und meist bedeutet die Antwort Controller.

    b) Danach entscheidest du dich, in welchen Controller etwas gehört, also "horizontal". Die wichtigsten Tyüen habe ich ja auf Seite 420 aufgezählt. Um das noch einmal zu sortieren:

    App-Delegate: Funktionalität, die zentral für das gesamte Program ist, also unabhängig von Dokumenten oder Fenstern.

    Document (in seiner Controllereigenschaft): Alles, was lokal auf ein Dokument begrenzt bleibt.

    Window-Controller: Alles was lokal auf ein Fenster begrenzt bleibt. (Hast du nur ein Fenster pro Dokument, ist das müßig.)
    Alle diese Controller können mit mehreren Views in Beziehung treten. Der Converter aus Kapitel 2 etwa hat Outlets auf drei Views.

    View-Controller:Funktionalität, die sich nur auf ein bestimmtes View bezieht.
    In diese Falle wird man in der Regel ein View haben. (Daneben aber möglicherwese weitere, die aufpoppen, reinklappen, $wasweißich

    Original von jus
    Danke, danke, danke für eure Hilfe, aber die Lernkurve ist ganz schön steil am bitteren Anfang....

    Ja
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • O.K mit ein xib habe ich es hinbekommen, Controller, 2 Views ...

    Jetzt tut sich aber neues Problem auf :

    Ich habe eine einfache Formel ca. Wert1/100 * Wert1 *Wert3 = Ausgabe durch ein Textfield.

    Einen Button habe ich zum kalkulieren und einen Slider der mit dem Wert1 verbunden ist und gleichzeitig die Methode "calculiere" aufruft.

    Der Slider verändert den Wert1 und kalkulirt gelichzeitig das Egebnis neu.

    Jetzt kommts : Im Simulator funktioniert das einwandfrei nicht aber auf dem Device.
    Beim iPod Touch verändert sich der Wert1 genauso (bei sliderbewegung) und wird auch kalkuliert, nur das Ergebnis stimmt nicht, wenn dann nochmals auf den Button manuel gedrückt wird (nochmals aufrufen des "calculiere" Befehls) stimmt die Ausgabe ? :(
  • Leider zu früh gefreut, es geht immer noch nicht.
    Was ich festgestellt habe:
    Im Simulator : Bei Bewegung des Sliders (wird automatisch kalkuliert und angezeigt) und anschliessend festhalten der Maustaste auf einem bestimmten Wert stimmt die Ausgabe nicht, wenn dann die Maustaste losgelassen wird (ohne Bewegung des Sliders) springt der Wert auf die korrekte Kalkulation. ???
    Beim Ipod Touch bleibt der falsche Wert auch bei loslassen des Sliders.
  • Ich vermute mal das die Methode calculate nicht mit der slidervaluechanged "mitkommt".
    Wie kann man sicherstellen, dass zuerst valuechanged ausgeführt und dann erst calculate (Im IB habe ich den Slider auf Multiple : slidervaluechanged und calculate gesetzt) ?