如何阅读UIPicker所选文本

时间:2014-04-03 20:31:58

标签: ios iphone objective-c uipickerview didselectrowatindexpath

我创建了一个UIPicker,它有大约八个或九个可能的字符串。根据视图加载的不同,UIPicker将取决于显示的字符串。

由于这个在我的 pickerView:didSelectRow:inComponent 中,所以我想知道当用户选择一行时是否有一种方法,如果我可以获得该文本值。

这样在didselectrow方法中,我可以根据所选的字符串值执行不同的操作。

目前这就是我所拥有的:

#pragma mark - Picker Delegates
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

// get rowString somehow?
    // ReloadView
    if ([rowString isEqualToString:@"one Of the Values"]) {

     }
    // more if statements here.
}

3 个答案:

答案 0 :(得分:3)

只需从该行的数据源中读取值,然后进行比较:

NSString *rowString = (NSString *)[self.pickerArray objectAtIndex:row];
if ([rowString isEqualToString:@"one Of the Values"]) {

 }

答案 1 :(得分:1)

@Meda给了你正确的答案。您不应将数据存储在视图对象(如选取器)中。请记住,为了使UIPickerView正常工作,您必须实现方法pickerView:titleForRow:forComponent:' (or the method pickerView:viewForRow:forComponent:reusingView:'如果你自己构建你的单元格视图)。 `pickerView:titleForRow:forComponent:' method为选择器视图的组件中的每一行提供文本,因此它必须具有可用的数据。

因此,UIPickerView的委托需要有可用的数据。 Meda的帖子假设您将其保存在数组pickerArray中。

答案 2 :(得分:-3)

[pickerView selectedRowInComponent:0];