我的编码现在有问题。我想在一个视图中有两个选择器视图,每个选择器中有不同的数据。因此,当我单击文本字段时,选择器将显示数据,当我单击另一个文本字段时,选择器将显示不同的数据。我设法创建了选择器,但每个文本字段中都显示相同的数据。我试图做一个分离拣选者数据的动作,但我无法让它发挥作用。
- (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;
如何继续将选择器中的其他数据连接到其他文本字段?
答案 0 :(得分:1)
创建2个数组 - 每个选择器视图一个。在这些数组中,包含用户应该可以选择的选项。这可以通过NSArray轻松完成。
在Interface Builder中设置文本字段(即在Storyboard文件中),并将每个文本字段的IBAction连接到视图控制器代码中的函数。
在每个函数中,使用与当前选择器对应的数组内容实例化一个新的UIPickerView。
用户选择项目后,将文本字段的内容设置为选择器选择的索引中包含的数组值。
从当前视图中删除选择器。