2012-06-06 105 views
1

我现在有一个编码问题。我想在一个视图中有两个pickerviews,每个picker有不同的数据。所以当我点击一个文本框时,一个选择器会出现数据,当我点击另一个文本框时,选择器出现不同的数据。我设法创建了选择器,但每个文本字段中都显示了相同的数据。我试图做出一个分离采集者数据的行动,但我无法设法使其运作起来。多个文本域在一个视图中的多个UIPickerViews

- (void)viewDidLoad{ 
    dataArray = [[NSMutableArray alloc] init]; 
    [dataArray addObject:@" "]; 
    [dataArray addObject:@"IG"]; 
    [dataArray addObject:@"G"]; 
    [dataArray addObject:@"VG"]; 
    [dataArray addObject:@"MVG"]; 
} 

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

    - (void)pickerView:(UIPickerView *)picker didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ 
     currentTextField.text = [dataArray objectAtIndex:row]; 
     selectedText = currentTextField.text;   
    } 

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

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

这是我用于选取器的代码,我试图为其他文本域做一个精确的副本,但是使用不同的数据。

这里是包括该代码的文本框的操作:

- (IBAction)showPicker:(id)sender { 

    picker = [[UIPickerView alloc] init]; 
    picker.showsSelectionIndicator = YES; 
    picker.dataSource = self; 
    picker.delegate = self; 

    UIToolbar* toolbar = [[UIToolbar alloc] init]; 
    toolbar.barStyle = UIBarStyleBlackTranslucent; 
    [toolbar sizeToFit]; 

    //to make the done button aligned to the right 
    UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 


    UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                    style:UIBarButtonItemStyleDone target:self 
                    action:@selector(doneClicked:)]; 


    [toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]]; 

    //custom input view 
    textField3.inputView = picker; 
    textField3.inputAccessoryView = toolbar; 
    textField5.inputView = picker; 
    textField5.inputAccessoryView = toolbar; 
    textField7.inputView = picker; 
    textField7.inputAccessoryView = toolbar; 
    textField9.inputView = picker; 
    textField9.inputAccessoryView = toolbar; 

我怎样才能进行,从拾取到其他文本框的连接其他数据?

回答

1
  1. 创建2个数组 - 每个选取器视图一个。在这些数组中,包含用户应该能够从中选择的选项。这可以很容易地用NSArray完成。

  2. 在Interface Builder(即Storyboard文件中)中设置文本字段,并将每个文本字段的IBAction连接到视图控制器代码中的函数。

  3. 在每个函数中,实例化一个新的UIPickerView,其中的数组内容对应于当前选择器。

  4. 用户选择该项目后,将文本字段的内容设置为包含在由选取器选择的索引内的数组值。

  5. 从当前视图中删除选择器。