2011-02-04 23 views

cevap

60

[picker selectRow:row inComponent:component animated:NO]; Her zaman olduğu gibi bu iyice belgelenmiştir çok kolaydır. UIPickerView için Apple belgeleri, muhtemelen istediğiniz yöntemin – selectRow:inComponent:animated: olduğunu söylemelidir. didSelectRow: hem yetki yöntem pickerView tetiklemek istiyorsanız

+6

'Seç' değil 'SelectRow()' senin gibi düşünürdüm. –

+0

Beni çağırmak için '- selectRow: inComponent: canlandırılmış:' yöntem yeterli değildi, '-pickerView: didSelectRow: inComponent: 'programcı olarak çağırmak zorunda kaldım. – fruechtemuesli

+0

Sağ; Seçilen satırın program aracılığıyla ayarlanması delege yöntemini çağırmaz. Tüm seçim değişikliklerine karşılık olarak harekete geçmek istiyorsanız, bunu kendiniz aramak zorundasınız. – warrenm

21

inComponent, bunu elle çağırmalıdır:

Obj C

[self.myPickerView selectRow:0 inComponent:0 animated:NO]; 
[self pickerView:self.myPickerView didSelectRow:4 inComponent:0]; 

Swift

self.myPickerView.selectRow(0, inComponent: 0, animated: false) 
self.pickerView(self.myPickerView, didSelectRow: 0, inComponent: 0) 
2

XCode 7.3 ile iOS 9'da Çalışmak, için fieldPicker adlı bir seçici görünümünde verilere çalışma zamanı değişiklikleri yapın:) (herkes denir Xamarin.iOS (MonoTouch) onu bulamıyorsanız

// first load your new data to your picker view's data source (not shown here...) then load the data into the picker view using it's delegate 
    [self.fieldPicker reloadAllComponents]; 

    // now that the data is loaded, select a row in the picker view through it's delegate 
    [self.fieldPicker selectRow:([self.theFields count] - 1) inComponent:0 animated:NO]; 

// retrieve the row selected in the picker view to use in setting data from your data source in textboxes etc. 
    long row = (long)[self.fieldPicker selectedRowInComponent: 0];