2011-02-04 9 views

答えて

60

は非常に簡単です、これは完全に文書化されています。 UIPickerViewのアップルのマニュアルでは、希望する方法が– selectRow:inComponent:animated:であることがわかります。

+6

:fieldPicker呼ばピッカービュー内のデータへの実行時の変更を行います思うだろう。 –

+0

' - selectRow:inComponent:animated:'メソッドを呼び出すだけでは不十分でしたので、私はデリゲート '-pickerView:didSelectRow:inComponent:'をプログラムで呼び出さなければなりませんでした。 – fruechtemuesli

+0

右プログラムで選択した行を設定しても、デリゲートメソッドは呼び出されません。すべての選択変更に応じて行動を起こさせたい場合は、自分で呼び出す必要があります。 – warrenm

33

はい、それはいつものように[picker selectRow:row inComponent:component animated:NO];

21

あなたは、デリゲートのメソッドpickerViewトリガする場合:didSelectRow:inComponent、手動でそれを呼び出す必要があります。

のObj-C

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

スウィフト

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

iOS 9でXCode 7.3で作業する誰もがそれは `セレクト()`ではない `SelectRow()`あなたのように呼び出されXamarin.iOS(MonoTouchで)でそれを見つけることができない場合は

// 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]; 
関連する問題