2009-10-28 17 views
18

私は、選択する番号のリストを持つピッカービューを持っています。特定の行でコントロールを初期化できるようにしたい。たとえば、ユーザーがデフォルトとして10を指定した場合、コントロールが最初に初期化されるときに、コントロールはその行に自動的に配置されます。iphone SDK:UIPickerViewの初期値を設定する方法は?

ありがとうございます。

答えて

55

selectRow:inComponent:animated:に電話し、選択したい行のインデックスを渡します。

[thePicker selectRow:10 inComponent:0 animated:YES]; 

は、このコードは次のようなものを呼ぶような行10を表示するために、あなたのケースでは0

- (void)viewDidAppear:(BOOL)animated { 

    [thePicker selectRow:60 inComponent:0 animated:YES]; 
    [thePicker reloadComponent:0]; 
    [thePicker selectRow:60 inComponent:1 animated:YES]; 
    [thePicker reloadComponent:1]; 
    [thePicker selectRow:0 inComponent:0 animated:YES]; 
    [thePicker reloadComponent:0]; 
    [thePicker selectRow:0 inComponent:1 animated:YES]; 
    [thePicker reloadComponent:1]; 
} 

に載るように来る前に0〜60の数字によってスピンするUIPickerViewを引き起こし

+0

予想通り。私はコントローラのviewDidLoadにこのコードを入れました。 [tipPicker selectRow:5 inComponent:0 animated:YES]; –

+0

IBの問題を修正した後、解決策が働いた。 –

+0

ニースのデモ。ありがとうございました。 –

0

行を選択するのではなく、行うことができるのは、pickerviewに必要な値を見つけさせることです。方法は、配列にそれを見つけるためにループを作成し、それを選択します

- (void)viewDidAppear:(BOOL)animated{  
    int i = 0; 
    for(NSString* number in arrayName) 
    { 
     if ([stringValue isEqualToString:number]){ 
      [pickerViewName selectRow:i inComponent:0 animated:YES ]; 
     } 
     i++; 
    } 
} 
0

あなたがこれを使用UIPickerView

[self.text_field setInputView:self.picker]; 

UITextFieldを使用している場合:それは働いていません

self.text_field.text = [_myarray objectAtIndex:10]; 
関連する問題