Hur överför jag data mellan skärmar i min Apple Watch Apps?

En Apple Watch-app skiljer sig från sin iPhone-motsvarighet i det sätt som data skickas mellan skärmarna. Ta reda på hur du gör det i den här handledningen.

Innan du följer den här handledningen kanske du vill slutföra den första delen av serien om hur du arbetar med seger i en Apple Watch-app. Jag täcker olika sätt att navigera mellan skärmar i din app.

Den första metoden:

1. Den andra skärmen som skapades i den sista handledningen har inte en egen View Controller, så vi måste skapa en innan vi kan göra någonting. Högerklicka i mappen WatchKit Extension, välj Ny fil -> IOS -> Källa -> Kakao Touch Class.

2. Namn den nya kontrollen, gör den till en underklass av WKInterfaceController, och klicka Nästa -> Skapa.

3. Gå till storyboardet, välj den andra skärmen, växla till Identitetsinspektören och sätt in klassen till den nybildade gränssnittsregulatorn.

4. Upprepa stegen ovan för att skapa en ny blank swift-fil under mappen WatchKit Extension. När filen har lagts till, skapa en ny klass, lägg till en strängegenskap och sätt dess init-metod som så.

5. Gå tillbaka till InterfaceController.swift fil, skapa en ny variabel av typen TechRecipes inuti knappenPressad metod (eller någon metod som är kopplad till knappen i storyboardet). Slutligen, skicka den nya variabeln i kontextparametern av antingen pushControllerWithName eller presentControllerWithName metod.

6. Växla till den andra skärmens gränssnittskontrollfil. Under awakeWithContext metod, kolla om kontexten är av typen TechRecipes, och tilldela den till techrecipes konstant. Om det fungerar skriver vi ut ägaren av förnamn.

Den andra metoden:

För seger som skapats i storyboardet måste du bara åsidosätta contextForSegueWithIdentifier metod.

1. Växla till storyboardet, välj segue, och ge den en unik identifierare i Utilities-panelen.

2. I kodfilen lägg till contextForSegueWithIdentifier metod och kontrollera om segueIdentifier är lika med den unika identifieraren som du just lagt till. Om det är, returnera en ny instans av TechRecipes-klassen. Annars, returnera noll.

3. Se steg 6 i den första metoden för att se hur du kan få data från andra änden.