Hallo, watchOS – Exemplarische Vorgehensweise
Nachdem Sie eine Projektmappe gemäß den Schritten unter Setup und Installation erstellt haben, verfügen Sie über drei Projekte:
- Die übergeordnete iOS-App, die für die Einrichtung oder andere verwaltungstechnische Aufgaben auf dem Gerät verwendet wird. (Bei anderen Arten von iOS-Erweiterungen wird dies häufig als "Container"-App bezeichnet.) Mit Watch Apps ist es Benutzern möglich, mit der Ausführung der Überwachungs-App zu beginnen, ohne jemals die übergeordnete App auszuführen.
- Die Überwachungserweiterung, die den Programmcode für die watch-App enthält; und
- Die Überwachungs-App, die das Storyboard und die Bildressourcen enthält, die auf dem watch gerendert werden.
Überprüfen Sie, ob Ihre Verweise korrekt sind: Ob die übergeordnete App über einen Verweis auf die Überwachungs-App und die Überwachungs-App einen Verweis auf die Erweiterung verfügt.
Vergewissern Sie sich, dass Ihre Bundle-IDs der Konvention *.watchkitextension *.watchkitapp entsprechen und dass für die Datei Info.plist Ihrer Erweiterung der Wert WKApp Bundle ID auf den Bundle-Bezeichner Ihrer Watch App festgelegt ist.
Sie sollten Ihre Überwachungs-App jetzt ausführen können, aber da die Storyboarddatei in Ihrer Watch-App leer ist, könnten Sie es nicht erkennen.
Doppelklicken Sie in Ihrer Watch-App auf das Storyboard Interface.Storyboard, um die Xamarin iOS-Designer zu starten (wenn Sie sich auf einem Mac befinden, können Sie auch mit der rechten Maustaste klicken und Mit > Xcode Interface Builder öffnen).
Stellen Sie sicher, dass die Registerkarten Toolbox und Eigenschaften angezeigt werden.
Klicken Sie, um den Schnittstellencontroller auszuwählen,
Legen Sie den Bezeichner und den Titel des Schnittstellencontrollers auf interfaceController und Hi Watch fest.
Überprüfen, ob die Klasse auf InterfaceController festgelegt ist
Erstellen Sie Ihre Benutzeroberfläche:
- Über das Toolboxpad :
- Ziehen sie eine Schaltfläche und eine Bezeichnung auf die Szene, und
- Legen Sie den Text und die Attribute der Steuerelemente wie gezeigt fest:
Legen Sie den Namenim Eigenschaftenpad für jedes Steuerelement fest. In diesem Beispiel haben wir und
myLabel
verwendetmyButton
.Wählen Sie die Schaltfläche im Storyboard aus, und wechseln Sie zur Registerkarte "Ereignisse " im Pad "Eigenschaften" und dann
Erstellen Sie eine neue Aktion , indem Sie eingeben
OnButtonPress
und die EINGABETASTE drücken. Die Aktion wird in der Liste angezeigt, und in C# wird automatisch eine Partielle Methode erstellt.
Nachdem Sie das Storyboard gespeichert haben, wird InterfaceController.designer.cs mit den Steuerelementnamen und Aktionen aktualisiert. Wenn Sie diese Datei öffnen, nachdem sie aktualisiert wurde, können Sie sehen, wie die RegisterAttribute
dem Controller entspricht und wie UI-Steuerelemente C#-instance Variablen entsprechen, die OutletAttribute
mit markiert sind, und wie Aktionen partiellen Methoden zugeordnet werden, die mit markiert sindActionAttribute
:
// WARNING
//
// This file has been generated automatically by Visual Studio for Mac from the outlets and
// actions declared in your storyboard file.
// Manual changes to this file will not be maintained.
//
[Register ("InterfaceController")]
partial class InterfaceController
{
[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
WatchKit.WKInterfaceButton myButton { get; set; }
[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
WatchKit.WKInterfaceLabel myLabel { get; set; }
[Action ("OnButtonPress:")]
[GeneratedCode ("iOS Designer", "1.0")]
partial void OnButtonPress (WatchKit.WKInterfaceButton sender);
void ReleaseDesignerOutlets ()
{
if (myButton != null) {
myButton.Dispose ();
myButton = null;
}
if (myLabel != null) {
myLabel.Dispose ();
myLabel = null;
}
}
}
Öffnen Sie nun InterfaceController.cs (nicht InterfaceController.designer.cs), und fügen Sie den folgenden Code hinzu:
int clickCount = 0;
partial void OnButtonPress (WatchKit.WKInterfaceButton sender)
{
var msg = String.Format("Clicked {0} times", ++clickCount);
myLabel.SetText(msg);
}
Dieser Code sollte ziemlich transparent sein: Die instance Variable clickCount
wird bei jedem Aufruf der Funktion OnButtonPress
erhöht. Der Text von myLabel
wird geändert, um diese Anzahl widerzuspiegeln. myLabel
Natürlich ist der Name einer der Outlets, die Sie in XCode erstellt haben. Die partial
Funktion ist die Implementierung der Funktion, die dem Namen der von Ihnen angegebenen Aktion zugeordnet ist.
Wenn es sich nicht bereits um das Startprojekt handelt,
Klicken Sie mit der rechten Maustaste auf Ihr Watch Extension-Projekt, und wählen Sie Als Startprojekt festlegen aus.
Legen Sie das Bereitstellungsziel auf ein Watch Kit-kompatibles Simulatorimage fest (z. B. iPhone 6 iOS 8.2).
Klicken Sie auf die Schaltfläche Debuggen , um einen Build- und Simulatorstart auszulösen.
Wenn der Simulator gestartet wird, drücken Sie die Schaltfläche, um die Bezeichnung zu erhöhen. Herzlichen Glückwunsch, Sie haben selbst eine Watch-App!