如何传递两个NSAarray到一个UIPickerView基于UITextFields



当我点击textField时,打开UIPickerView,然后选择PickerView数据,它在UITextField上显示。但现在我有3个text_Filed(城市,typeofcars,分支机构),但我不知道关于单个UIPickerView的三个textfields。所以请给我一些建议。

单个文本字段的UIPickerview代码为:-

Businessname=[[UITextField alloc]init];
    Businessname.frame=CGRectMake(0, 0, 221, 33);
    Businessname.placeholder=@"Business Name";
    [Businessname setFont:[UIFont fontWithName:@"Times New Roman" size:13]];
    Businessname.backgroundColor=[UIColor whiteColor];
    [Businessname setBorderStyle:UITextBorderStyleBezel];
   Businessname.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
   Businessname.layer.borderColor=[[UIColor yellowColor]CGColor];
   Businessname.layer.borderWidth= 2.0f;
    Businessname.textColor=[UIColor blackColor];
    [scrol addSubview:Businessname];
   yourpicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 400, 100, 150)];
    [yourpicker setDataSource: self];
    [yourpicker setDelegate: self];
    yourpicker.showsSelectionIndicator = YES;
    Businessname.inputView = yourpicker;
    [yourpicker  setShowsSelectionIndicator:YES];
mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 300, 100, 56)];
       mypickerToolbar.barStyle = UIBarStyleBlackOpaque;
 [mypickerToolbar sizeToFit];

    NSMutableArray *barItems = [[NSMutableArray alloc] init];
   UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    [barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneClicked)];
    [barItems addObject:doneBtn];
    [mypickerToolbar setItems:barItems animated:YES];
    Businessname.inputAccessoryView = mypickerToolbar;
-(void)pickerDoneClicked
{
    NSLog(@"Done Clicked");
     [Businessname resignFirstResponder];
    mypickerToolbar.hidden=YES;
    yourpicker.hidden=YES;
}
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
    return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
    return [pickarray count];
}

上面的代码是输出当我点击文本文件,然后打开UIPIckerView,然后选择数据。但现在我有三个TextFields和3个nsarray请如何传递数据数据到UIPickerView基于UITextField。所以请给我一些关于我的问题的建议

Thanks in Advanced

您可以通过为每个文本字段设置标记值来实现这一点。同时为每个文本域设置UITextField的委托。UITextField

- (void)textFieldDidBeginEditing:(UITextField *)textField

通过标签值来识别文本域。根据标签值执行类似

的操作

//假设100,101,102是textfield

的标签值
NSInteger tag = textField.tag;
switch(tag)
{
  case 100:
     pickarray = @[@"1",@"2",@"3",@"4"];
     break;
  case 101:
     pickarray = @[@"10",@"20",@"30",@"40"];
     break;
  case 102:
     pickarray = @[@"11",@"21",@"31",@"41"];
     break;
  default: 
     break;
}

通过这个你可以分配不同的值给"pickarray"根据选定的textfield和重新加载你的UIPickerView。

最新更新