/ / Holen Sie sich den ausgewählten Index von WKPickerInterface - ios, apple-watch, watch-os-2

Holen Sie sich den ausgewählten Index von WKPickerInterface - ios, apple-watch, watch-os-2

Ich kann das bekommen WKInterfacePicker anrufen pickerDidSettle, aber wie kann ich den Index des ausgewählten Elements erhalten?

@IBAction override func pickerDidSettle(picker: WKInterfacePicker) {
print("Picker settled to index: (picker)")
}

Antworten:

6 für die Antwort № 1

Jedes Mal, wenn sich der Auswahlwert ändert, das WKInterfacePicker-Objekt meldet die Änderung der zugehörigen Aktionsmethode. Das Format davon Aktionsmethode ist wie folgt:

ZIEL C

- (IBAction) PickerAction: (NSInteger) Index

SCHNELL @IBAction func pickerAction (Index: Int)

Sie können den Indexwert der Aktionsmethode für verwendenerhalte das ausgewählte Element aus dem Array von Elementen, die Sie zum Konfigurieren der Auswahl verwendet haben. Das picker meldet jede Änderung an seiner Aktionsmethode, unabhängig davon, wie Schnell dreht der Benutzer die digitale Krone. Wenn Ihre App nur antworten soll Verwenden Sie für das vom Benutzer ausgewählte Element die pickerDidSettle: -Methode von WKInterfaceController, um stattdessen das ausgewählte Element abzurufen.

Quellverknüpfung

AKTUALISIERTE QUELLENVERBINDUNG


0 für die Antwort № 2

Was ich getan habe, um das zu lösen

Erstellen Sie eine .h-Datei

NSInteger PickerIndex;

schnell

 var PickerIndex: Int

Dann in meinem .m

 - (IBAction)pickerAction:(NSInteger)index {

PickerIndex = index;
}

schnell

@IBAction func pickerAction(index: Int) {

PickerIndex = index

}

* Vergessen Sie nicht, die IBAction im Interface Builder zu verknüpfen

Und dann in der pickerDidSettle-Methode verwenden

-(void)pickerDidSettle:(WKInterfacePicker *)picker{

NSLog(@"Selected Index: %ld",(long)PickerIndex);

}

schnell

func pickerDidSettle(_ picker: WKInterfacePicker) {

print(PickerIndex)

}