0

我正在使用一个 uipicker 应用程序,其中我有两列选定的数据,使用此代码我可以从选择器中选择值(当它只有一行时)

- (void)viewDidLoad
{
    [super viewDidLoad];
_pickerData = @[@"item1", @"item2", @"Item 4", @"Item 5", @"Item 6"];
    self.picker.dataSource = self;
    self.picker.delegate = self;

}

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

}


// The number of columns of data
- (int)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
     return 1;
  //  return 2;
}

// The number of rows of data
- (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return _pickerData.count;

}

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


- (IBAction)selOptions:(id)sender {
    NSInteger row = [self.picker selectedRowInComponent:0];
    NSString *selected = [_pickerData objectAtIndex:row];

    NSLog(selected);

}
@end

使用此代码,当我单击我的按钮时,我就有了所选择内容的值,然后我可以继续推动我的 segue 或任何我喜欢的东西。

但是,我希望 mypicker 有两行,但是使用下面发布的代码...当我单击按钮时,我无法收到错误消息。

- (void)viewDidLoad
{
    [super viewDidLoad];

     _pickerData = @[ @[@"item1", @"A"],
                     @[@"item2", @"B"],
                     @[@"item3", @"C"],
                     @[@"item4", @"D"],
                     @[@"item5",@"E"],
                     @[@"item6",@"F"]
                     ];

    // Connect data
    self.picker.dataSource = self;
    self.picker.delegate = self;

}

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

}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

// The number of columns of data
- (int)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
   //  return 1;
     return 2;
}

// The number of rows of data
- (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return _pickerData.count;

}

// The data to return for the row and component (column) that's being passed in
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

     return _pickerData[row][component];
}


- (IBAction)selOptions:(id)sender {
    NSInteger row = [self.picker selectedRowInComponent:0];
    NSString *selected = [_pickerData objectAtIndex:row];

    NSLog(selected);

NSInteger row2=[self.picker selectedRowInComponent:1];
NSString *selectedb=[_pickerData objectAtIndex:row2];

NSLog(selectedb);

}
@end

数据显示得很好,但是我不知道如何在单击我的按钮时允许从我的两行中选择值。对此的任何帮助将不胜感激。

谢谢

4

0 回答 0