Wie übertrage ich Daten zwischen Bildschirmen in meinen Apple Watch-Apps?

Eine Apple Watch-App unterscheidet sich von ihrem iPhone-Gegenstück darin, dass Daten zwischen Bildschirmen gesendet werden. In diesem Tutorial erfahren Sie, wie das geht.

Bevor Sie diesem Lernprogramm folgen, möchten Sie möglicherweise den ersten Teil der Serie zum Arbeiten mit Segmenten in einer Apple Watch-App abschließen. Ich beschreibe verschiedene Möglichkeiten zum Navigieren zwischen Bildschirmen in Ihrer App.

Die erste Methode:

1. Der zweite Bildschirm, der im letzten Tutorial erstellt wurde, hat noch keinen eigenen View Controller. Daher müssen wir einen erstellen, bevor wir etwas tun können. Rechtsklick Wählen Sie im Ordner WatchKit Extension die Option Neue Datei -> iOS -> Quelle -> Cocoa Touch Class.

2. Benennen Sie den neuen Controller und machen Sie ihn zu einer Unterklasse von WKInterfaceControllerund klicken Sie auf Weiter -> Erstellen.

3. Wechseln Sie zum Storyboard, wählen Sie den zweiten Bildschirm aus, wechseln Sie zum Identitätsinspektor und legen Sie die Klasse auf den neu erstellten Schnittstellencontroller fest.

4. Wiederholen Sie die obigen Schritte, um ein neues zu erstellen leere schnelle Datei unter dem Ordner WatchKit Extension. Sobald die Datei hinzugefügt wurde, eine neue Klasse erstellen, fügen Sie eine String-Eigenschaft hinzu, und legen Sie ihre init-Methode so fest.

5. Gehe zurück zum InterfaceController.swift Erstellen Sie eine neue Variable vom Typ TechRecipes in der buttonPressed-Methode (oder einer beliebigen der Schaltfläche im Storyboard zugeordneten Methode). Übergeben Sie zum Schluss die neue Variable in den Context-Parameter von beidem pushControllerWithName oder presentControllerWithName Methode.

6. Wechseln Sie zur Interface-Controller-Datei des zweiten Bildschirms. Unter dem awakeWithContext Überprüfen Sie, ob der Kontext vom Typ TechRecipes ist, und weisen Sie ihn der Konstante techrecipes zu. Wenn es funktioniert, drucken wir die Eigenschaft authorName aus.

Die zweite Methode:

Für im Storyboard erstellte Segmente müssen Sie lediglich die Option überschreiben contextForSegueWithIdentifier Methode.

1. Wechseln Sie zum Storyboard, Wählen Sie das Segment ausund gib ihm ein einzigartiges Kennung im Dienstprogrammfenster.

2. Fügen Sie in der Codedatei das hinzu contextForSegueWithIdentifier und prüfen Sie, ob der SegueIdentifier dem gerade hinzugefügten eindeutigen Bezeichner entspricht. Ist dies der Fall, geben Sie eine neue Instanz der TechRecipes-Klasse zurück. Ansonsten nil zurückgeben.

3. In Schritt 6 der ersten Methode erfahren Sie, wie Sie die Daten vom anderen Ende abrufen können.