2016-01-24 28 views
7

Posso ottenere WKInterfacePicker per chiamare pickerDidSettle, ma come posso ottenere l'indice dell'elemento selezionato?Ottieni l'indice selezionato da WKPickerInterface

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

risposta

5

Ogni volta che il valore raccoglitrice modifiche, l'oggetto WKInterfacePicker si evidenzia la variazione al suo metodo di azione associata. Il formato di questo metodo azione è il seguente:

OBIETTIVO-C

- (IBAction) pickerAction: (NSInteger) Indice

SWIFT @IBAction func pickerAction (index: Int)

È possibile utilizzare il valore dell'indice del metodo di azione per ottenere l'elemento selezionato dall'array di elementi utilizzati per configurare il selettore. I rapporti raccoglitrice ogni modifica del proprio metodo di azione, indipendentemente da quanto velocemente l'utente gira la corona digitale. Se la vostra applicazione dovrebbe rispondere solo per l'elemento che l'utente ha selezionato, utilizzare il pickerDidSettle: Metodo di WKInterfaceController per ottenere l'elemento selezionato, invece.

Source Link

UPDATED SOURCE LINK

+0

Il testo citato non è più al collegamento di origine. Prova questo link: [link] (https://developer.apple.com/library/content/documentation/General/Conceptual/WatchKitProgrammingGuide/Picker.html) – ghr

+0

Tuttavia, non spiega come ottenere l'elemento selezionato da un selettore . – ghr

+0

Grazie per il collegamento aggiornato. E la sua menzione nel testo citato che è possibile utilizzare "valore di indice di metodo di azione per ottenere l'elemento selezionato dalla matrice di voci" i rapporti raccoglitrice ogni modifica del proprio metodo. – Muneeba

0

Quello che ho fatto per risolvere questo

creati in file h

NSInteger PickerIndex; 

rapida

var PickerIndex: Int 

Poi nel mio .m

- (IBAction)pickerAction:(NSInteger)index { 

     PickerIndex = index; 
} 

rapida

@IBAction func pickerAction(index: Int) { 

PickerIndex = index 

} 

* Non dimenticare di collegare l'IBAction in Interface Builder

E poi utilizzarlo in modo pickerDidSettle

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

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

} 

rapida

func pickerDidSettle(_ picker: WKInterfacePicker) { 

    print(PickerIndex) 

}