2011-02-16 56 views
0

我決定使用UIPickerView來模擬一種下拉菜單。 我的問題是,我想使用多個UIPickerView。 我如何設置第二個UIPickerView? 添加一個新的UIViewController?或者它是如何工作的? 添加第二個跨度是不夠的,我需要多達3個更多的UIPickerViews。 感謝提前:)使用多個UIPickerView

代碼:

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 
     return 1; 
    } 

    -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 
     return [pickerarray count]; 
    } 

    -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
     return [pickerarray objectAtIndex:row]; 
    } 

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

- (void)viewDidLoad { 

pickerarray = [[NSMutableArray alloc] init]; 
[pickerarray addObject:@"Hamburg"]; 
[pickerarray addObject:@"Berlin"]; 
[pickerarray addObject:@"München"]; 
[pickerarray addObject:@"Bonn"]; 

pickerarray2 = [[NSMutableArray alloc] init]; 
[pickerarray2 addObject:@"Hambburg"]; 
[pickerarray2 addObject:@"Berelin"]; 
[pickerarray2 addObject:@"Müneechen"]; 
[pickerarray2 addObject:@"Boneen"]; 
} 

回答

2
  1. 他們都添加到您的視圖。
  2. 將它們設置爲隱藏。
  3. 爲每個人設置獨特的標籤。
  4. 添加「顯示它們」的按鈕。
  5. 實現根據picker view標籤管理值的委託方法。

代碼更新:

// put this before view controllers @implementation 
enum { 
    MyFirstPickerViewTag = 1, 
    MySecondPickerViewTag 
} MyPickerViewTags; // fix for warning 

// assign tags 1 and 2 respectively to your picker views in IB 
// here's one of delegate methods 

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 
    switch(pickerView.tag) { 
     case MyFirstPickerViewTag: { 
      return 2; 
     } 
     case MySecondPickerViewTag: { 
      return 3; 
     } 
    } 
    return 1; // component by default 
} 
+0

嗚嗚我在我看來,(IB),它們被隱藏加入他們兩個人(調用如果子句setHidden:NO),將嘗試seperately打電話給他們,但我想知道,這些委託方法是怎麼樣的。編輯:通過IB身份來設置他們的名字是否正確? – Dwain 2011-02-16 10:15:56