2016-04-14 7 views
-3

Ich versuche, ein "Add to Cart" in Swift für ein Einzelhandelsgeschäft zu machen. Mein aktuelles Problem ist, dass ich versuche, ein "Label" zu übergeben, das Datenbankinformationen von einem Ansichtscontroller zu einem anderen überträgt. Das Problem ist, dass das Etikett Informationen trägt. Die meisten Tutorials beschreiben, wie Textfelder an einen anderen View-Controller übergeben werden. Ich muss die Informationen an ein Popover weitergeben, das als Einkaufswagen fungiert.Wie man ein "in den Warenkorb" Popover in Swift machen

Dies ist das Video, das ich am nützlichsten gesehen habe, aber es verwendet Textfelder und ich muss Label an Label übergeben. Oder übergeben Sie dieses Label mit den Daten an das Popover.

Vielen Dank im Voraus für die Hilfe

https://www.youtube.com/watch?v=guSYMPaXLaw&nohtml5=False

+1

Vielleicht, wenn Sie den Code zur Verfügung gestellt haben, den Sie verwenden und nicht funktioniert. Im Allgemeinen wird versucht, das Model - View - Controller - Paradigma durchzusetzen. Ihre Daten sollten also alle in Ihrem Modell enthalten sein. Vielleicht sollte Ihr Modell Ihren Status enthalten (Sie benötigen ein Popup-Feld mit Text). Dann ruft Ihr Controller die Ansicht auf .. oder was auch immer. Selbst wenn du in deinem Design schimpfen willst ... ein Label ist sowieso nur Text, also solltest du es gut überbringen können. – LawfulEvil

Antwort

0

Sie kein Etikett zwischen View-Controller passieren sollte. Übergeben Sie stattdessen den Text, der an das Etikett angehängt wird, als eine Zeichenfolge.

Wenn Sie sich die Zeit nehmen, dieses Tutorial zu lesen, garantiere ich, dass es Ihre Probleme löst.

http://www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/

+0

Das ist objektive c ... Ich versuche, all dies in swift zu tun ... weißt du, wie man so schnell geht ?? danke –

+1

Für diese Angelegenheit sind Swift und Objective-C, für alle praktisch Zwecke, identisch. In den meisten Fällen für Anfänger ist der Unterschied zwischen Swift und Objective-C vernachlässigbar.Sie werden feststellen, dass die Methodennamen und dergleichen identisch sind, und Xcode's Autocomplete wird Ihre Hand den ganzen Weg halten. –

0

Zunächst einmal sollten Sie nie ein Label verwenden, um "zu tragen Informationen". Das Übergeben von Daten an einen Ansichtscontroller sollte über eine Variable wie z. B. eine Zeichenfolge, ein int oder ein benutzerdefiniertes Objekt usw. in dem präsentierten Ansichtscontroller erfolgen. Dann können Sie diese Daten anzeigen, wenn der View-Controller erfolgreich geladen wurde. Wenn Sie sich das Lernvideo ansehen, zu dem Sie verlinken, macht der Präsentator genau das. Er gibt die Daten durch eine Zeichenfolge, nicht durch ein Label. Er lädt die Zeichenfolgedaten in das Etikett, wenn der Ansichtscontroller geladen wird.

Wenn der anzuzeigende View-Controller als Popover angezeigt werden soll, ändern Sie einfach die Art der Segmentdarstellung, um Popover in Interface Builder zu verwenden. Sie übergeben die Zeichenfolge in der prepareForSegue:-Funktion genau so, wie er es Ihnen im Lernprogramm sagt. Alles, was Sie brauchen, ist in diesem Tutorial. Die einzige Sache, die Sie wirklich ändern müssen, ist die Art der Präsentation des zweiten View-Controllers - die "Present as Popover" anstelle von "Show (z. B. Push)" sein sollte.

aktualisieren

Ihre Frage zeigt Ihnen noch nicht verstanden haben, wie Model-View-Controller funktioniert. Der View-Controller, den Sie anzeigen möchten, muss eine Variable enthalten, die einfach die Daten (Modell) speichert, bis es Zeit ist, sie anzuzeigen (View/View-Controller). Sehen Sie sich Ihr Video an und hören Sie zu, wie eine String-Variable mit der Bezeichnung LabelText angesprochen wird (eigentlich sollte sie labelText heißen, um der richtigen Swift-Syntax zu entsprechen, aber das ist eine andere Diskussion). Er fängt an, es etwa 10 Minuten zu diskutieren. Es ist in der prepareForSegue: Funktion, wo er die Variable setzt. Innerhalb des neuen View-Controllers zeigt er dann den Inhalt der String-Variablen im Textfeld eines Labels an. Stellen Sie sich die String-Variable als "Platzhalter" vor, auf den Sie sich beziehen.

+0

Wie würden Sie die Zeichenfolge an das Popover übergeben, ohne einen 'Platzhalter' (AKA-Label) zu verwenden, der die gespeicherten Informationen zum anderen View-Controller enthält (Popover)? Damit ich meine Informationen aus der Datenbank präsentieren kann, muss ich eine Zelle haben, die einen Platzhalter hat, der den Namen des Produktes anzeigt, das unser Etikett in swift ist. Und wenn das Etikett ausgewählt ist, sollte es zum "Warenkorb" gehen, aber ich kann die Daten vom Etikett zum Popover nicht weitergeben. Der Versuch, so klar wie möglich zu sein. Danke in advnace –

+0

@ Phil-BertFriedman Ich aktualisierte meine Antwort als Antwort. –

Verwandte Themen