2013-09-03 10 views
8

Wiem UIPickerView ma tę metodę:iOS UIPickerView jak dostać wybrany wiersz poza metody delegata

- (void)pickerView:(UIPickerView *)pickerView 
     didSelectRow:(NSInteger)row 
     inComponent:(NSInteger)component 

Ale wewnątrz tej metody, chcę otrzymać wybrany wiersz innych komponentów. Jak na Ziemi mogę to zrobić?

+0

https://developer.apple.com/library/ios/documentation/uikit/reference/UIPickerView_Class/Reference/UIPickerView#//apple_ref/occ/instm/UIPickerView/selectedRowInComponent: – Kevin

Odpowiedz

26

Możesz uzyskać wybrany numer wiersza w dowolnym miejscu za pomocą metodyz UIPickerView.

Takie jak

NSString *YourselectedTitle = [self.yourArrayName objectAtIndex:[self.yourPickerName selectedRowInComponent:0]]; 
NSLog(@"%@", YourselectedTitle); 
+0

to działa. Ale nie rozumiem: wpisałem "row0 = [self selektor sel" i nie pojawiła się żadna sugestia! tylko metoda "select", która nie ma nic wspólnego z UIPickerView; coś nie tak z moim Xcode? –

+0

@BogdanAlexandru - wpisz tutaj swój kod i pracuję z powyższym kodem, który działa bardzo dobrze dla mnie :) – iPatel

+0

to działa! problem jest inny: podczas pisania "sel" XCode powinien pokazać mi sugestię "selectedRowInComponent", ale tak się nie stało! –

4

Stare pytanie, ale jeśli ktoś tak jak ja pracuje z Swift 2.0 teraz odpowiedź jest

let row = self.myPicker.selectedRowInComponent(0) 
let value = myArray[row] 

pisałem 0 do wartości składowej ponieważ mój zbieracz ma tylko jeden składnik, ale może mieć więcej niż jeden, taki jak datepicker z datą i czasem

Możesz nawet użyć tej metody poza funkcją, o której mówisz, jeśli zachowasz n wylot swojej pickerview

Powiązane problemy