2011-03-30 13 views
0

私は2つのコンポーネントを持つUIPickerViewを持っています。部品1の行数は、私は次のことをしようとしているコンポーネントを0に依存します:UIPickerViewで行を選択する方法

// [picker reloadAllComponents]; 
[picker selectRow:5 inComponent:0 animated:NO]; 
[picker reloadComponent:1]; // [picker reloadAllComponents]; 
[picker selectRow:3 inComponent:1 animated:NO]; 
// [picker reloadAllComponents]; 

インデックス0が選択されたかのようにコンポーネント0はインデックス5と部品1に設定されていることであるが、情報を示している何が起こりますコンポーネント0!

答えて

0

私はまったく同じことを試み、それは完全に動作します。ここではいくつかの関連するコードは次のとおりです。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    if (component == 0) { 
     [pickerView reloadComponent:1]; 
    } 
} 

が、私はそれがタップいたときにあなたのコードを実行し、ボタンを追加しました:あなたは手動で行を選択した場合

このコードは関連しています。

- (void)buttonAction:(id)sender { 
    [pickerView selectRow:3 inComponent:0 animated:NO]; 
    [pickerView reloadComponent:1]; 
    [pickerView selectRow:1 inComponent:1 animated:NO]; 
} 

ここで私が持っているコードの最後の関連作品だ:予想通り

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    switch (component) { 
     case 0: 
      return 5; 
      break; 
     case 1: 
      return [pickerView selectedRowInComponent:0]; 
      break; 
     default: 
      break; 
    } 
    return 5; 
} 

すべての作品は、そうあなたが投稿行が問題の原因となったものではありません。あなたが私のコードを読んだ後にそれを理解できなければ(それはテストされ、働いています)、コードをいくつか投稿することをお勧めします。

+0

サンプルを作成しようとしましたが、うまくいきます。私は元のコードでキーボードと椅子の間に問題があると思います。そうでなければ、スレッドを更新します – rp90

関連する問題