Swift ist eine großartige Programmiersprache, die Apple während der WWDC 2014 eingeführt hat, und jetzt verwenden fast alle Apple-Entwickler sie zur Programmierung von iOS- und OS X-Anwendungen. Es ist sehr flexibel, einfacher zu bedienen als sein Vorgänger Objective C und erspart Ihnen beim Codieren mit XCode einige wertvolle Minuten.
Dies ist eine leistungsstarke und intuitive Programmiersprache für iOS, OS X, tvOS und watchOS. Das Schreiben von Swift-Code ist interaktiv und macht Spaß, die Syntax ist prägnant, aber ausdrucksstark, und Swift enthält moderne Funktionen, die Entwickler lieben. Wenn Sie Swift noch nicht verwenden, sehen Sie sich einige unserer anderen großartigen Tutorials zur Swift-Sprache an:
Wenn Sie eine iOS-App mit mehr als einem Bildschirm erstellen, müssen Sie meistens Daten zwischen Ihren View-Controllern übergeben, damit diese Inhalte freigeben können, ohne sie dabei zu verlieren. In diesem Tutorial erfahren Sie, wie das geht. Wir werden eine verwenden String
, ein Ganze Zahl
, und auch a UIImage
, Lesen Sie also weiter - Sie werden staunen, wie einfach diese Arbeit mit Swift ist.
Erstellen Sie zunächst ein neues XCode-Projekt. Wählen Einzelansicht-Anwendung und benennen Sie das Projekt, wie Sie möchten. Sie finden ein ViewController.swift Datei in der Dateiliste auf der linken Seite und eine Controller-Schnittstelle im Storyboard.
Ziehen Sie zunächst einen neuen View Controller aus der Objektbibliothek in Ihr Storyboard.
Betten Sie Ihren ersten Controller in ein NavigationController
, Wenn Sie auf den nächsten Controller drücken, wird in der oberen Leiste ein Standardwert angezeigt Zurück Taste. Wählen Sie nun den ersten Controller im Storyboard aus und klicken Sie auf Editor > Einbetten in… > Navigationssteuerung.
Fügen Sie jetzt eine UILabel
und ein UIButton
zum Controller. Sie können sie in der Objektbibliothek finden und in Ihren ersten Controller ziehen. Dann doppelklicken Sie auf die UILabel
und geben Sie den Text ein, den Sie an den zweiten Controller übergeben möchten. Ich habe gerade seinen Text auf "Text zu übergeben".
Ziehen Sie auf dem zweiten Controller einen neuen UILabel
Sie können den Text so lassen, wie er ist.
Wir müssen jetzt ein neues erstellen .schnell Datei und hängen sie an unseren zweiten Controller. Klicken Sie mit der rechten Maustaste in das Dateilistenfeld auf der linken Seite Neue Datei… , wählen Kakao-Touch-Klasse von dem iOS-Quelle Klicken Sie auf die Kategorie Nächster, und benennen Sie den neuen View-Controller SecondVC
. (Der Name darf keine Leerzeichen enthalten und muss mit einem Großbuchstaben beginnen.)
Nun müssen Sie den zweiten Controller im Storyboard mit Ihrem neuen Controller verknüpfen SecondVC.swift Datei. Wählen Sie den gelben Kreis oben in der Steuerung aus und klicken Sie auf Inspektor identifizieren Klicken Sie auf der rechten Seite des XCode-Fensters auf das Bedienfeldsymbol und geben Sie den Namen Ihres neuen Fensters ein .schnell Datei in der Klasse und StoryboardID Felder.
Teilen Sie das XCode-Fenster in zwei Teile, indem Sie auf klicken Schnittassistenz Schaltfläche in der oberen rechten Ecke. Nun sehen Sie links das Storyboard und das entsprechende .schnell Datei auf der rechten Seite.
Verbinden Sie das UILabel
als ein IBOutlet
und das UIButton
als ein IBAction
zu deinem .schnell Datei durch Halten der rechten Maustaste (oder der Steuerung Taste und Maustaste) über diese Ansichten und ziehen die blaue Linie direkt unter die Klasse
Erklärung.
Wenn Sie die Maustaste loslassen, können Sie dem Auslass des Etiketts und der Aktion der Schaltfläche in dem kleinen, grauen Popup einen Namen geben. Klicken Sie für die Schaltfläche auf das kleine Kombinationsfeld mit der Aufschrift Auslauf und wechseln Sie in Aktion, weil wir brauchen, dass es eine Funktion ist, keine Steckdose.
Wenn Sie alle Ansichten miteinander verbunden haben, lassen Sie das XCode-Fenster in zwei Abschnitte aufgeteilt und wählen Sie den ersten Controller im Storyboard aus. Jetzt wird auf der rechten Seite das angezeigt ViewController.swift Datei und Sie werden bereit sein, etwas Code zu schreiben.
Fügen Sie den folgenden Code in das ein goButton ()
Methode.
myVC = Storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") als! SecondVC myVC.stringPassed = myLabel.text! navigationController? .pushViewController (myVC, animiert: true)
Die erste Zeile instanziiert das SecondVC
Controller aus dem Storyboard.
Die zweite Zeile ist eigentlich der Kern dieses Tutorials, da es die Zuweisung von myLabel
s Text zum UILabel
wir haben in die gestellt SecondVC
Regler. Es tut das, indem Sie eine String
dass wir später klingeln werden.
Dann schieben wir zum Schluss einfach den Blick auf den nächsten Controller.
Wählen Sie nun den anderen Controller im Storyboard aus und fügen Sie diese Variable direkt unter dem hinzu SecondVC
Klassenerklärung:
var stringPassed = ""
Lassen Sie die App den Wert dieser Variablen zuweisen secondLabel
mit der folgenden Codezeile in der viewDidLoad ()
Methode.
secondLabel.text = stringPassed
Sie sind fertig! Führen Sie die App auf dem iOS-Simulator oder einem echten Gerät aus. Tippen Sie auf GEHEN! und du solltest so etwas bekommen:
Wie Sie sehen können, die Text zu übergeben String
wurde erfolgreich an unsere weitergegeben SecondVC
Regler.
Versuchen wir nun, eine Ganzzahl hinzuzufügen (Int
in Swift) und teilen Sie es zwischen den beiden Controllern.
Fügen Sie die folgende Variable hinzu ViewController.swift
, direkt unter dem myLabel
Outlet-Erklärung.
var myInt = Int ()
Initialisieren Sie den Wert in viewDidLoad ()
:
func viewDidLoad () überschreiben super.viewDidLoad () myInt = 5
Bearbeiten Sie als Nächstes die goButton ()
Funktion durch Hinzufügen einer Instanz, die auch unsere übergeben wird myInt
Wert für den nächsten Controller wie folgt:
myVC = Storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") als! SecondVC myVC.stringPassed = myLabel.text! myVC.intPassed = myInt navigationController? .pushViewController (myVC, animiert: true)
Jetzt geh hinein SecondVC.swift und fügen Sie zuerst eine Variable vom Typ hinzu Int
Das wird die Nummer erhalten, die wir vom ersten Controller senden. Platzieren Sie diese Codezeile direkt unter dem stringPassed
Variable.
var intPassed = Int ()
Bearbeiten Sie die secondLabel
Codezeile wie folgt:
secondLabel.text = stringPassed + "my Int: \ (intPassed)"
Das ist alles. Führen Sie die App erneut aus und tippen Sie auf GEHEN! und Sie sollten so etwas bekommen:
Jetzt sehen Sie, wie einfach es ist, Variablen von einem Controller zum anderen zu übergeben. Das Letzte, was ich Ihnen zeigen möchte, ist, wie Sie ein Bild weitergeben.
Als nächstes müssen wir ein Bild in die einfügen VermögenswerteOrdner in XCode, a UIImageView
in beiden Controllern und deren relativen Variablen vom Typ UIImage
.
Geben Sie das ein Assets.xcassets blauen Ordner und erstellen Sie einen neuen Bildmenge.
Ziehen Sie die 3x-, 2x- und 1x-Bilder in die entsprechenden Felder. Sie können jedes Bild frei verwenden. Ich habe ein Apple-Logo nur als Beispiel verwendet.
Gehen Sie zurück zum ersten Controller im Storyboard und ziehen Sie eine UIImageView
irgendwo drin. Hängen Sie Ihr Bild mit dem Attribut-Inspektorfenster daran an und legen Sie es fest Modus zu Aspect Fit.
Jetzt ein neues ziehen UIImageView
in den zweiten Controller und setzen Sie seine Modus zu Aspect Fit. Weisen Sie ihm jedoch kein Bild zu, da wir das Bild vom ersten Controller übergeben!
Klicken Sie mit der rechten Maustaste (oder halten Sie die Maustaste gedrückt) Steuerung und klicken Sie mit der Maustaste) und ziehen Sie eine blaue Linie in den ersten Controller .schnell Datei, um Ihre UIImageView
als ein IBOutlet
. Machen Sie dasselbe auch auf dem zweiten Controller.
Jetzt müssen Sie eine hinzufügen UIImage
Variable zum SecondVC.swift Datei. Legen Sie es unter das intPassed
Variable.
var theImagePassed = UIImage ()
Im viewDidLoad ()
, schnappen Sie sich das vom ersten Controller übergebene Bild und zeigen Sie es mit an imagePassed
.
imagePassed.image = theImagePassed
Bearbeiten Sie zuletzt die goButton ()
Methode, indem Sie eine Codezeile hinzufügen, die das Image des ersten Controllers in die übergibt UIImageView
vom zweiten. Die volle goButton ()
Methode ist jetzt wie folgt.
myVC = Storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") als! SecondVC myVC.stringPassed = myLabel.text! myVC.intPassed = meinInt myVC.theImagePassed = meinImage.image! navigationController? .pushViewController (myVC, animiert: true)
Führen Sie die App aus und tippen Sie auf GEHEN! erneut, und Sie sollten so etwas sehen:
Danke fürs Mitmachen! Ich hoffe, Sie sind begeistert, wie einfach es ist, Variablen und Bilder zwischen zwei Controllern auszutauschen.
Wir haben ein umfassendes Handbuch zusammengestellt, um Sie beim Erlernen von Swift zu unterstützen, egal ob Sie gerade mit den Grundlagen anfangen oder fortgeschrittenere Themen erkunden möchten.
Sie können sich auch einige andere Tutorials zu Xcode und Swift ansehen!