获取选定的选取器视图组件字符串值

Posted

技术标签:

【中文标题】获取选定的选取器视图组件字符串值【英文标题】:Get selected picker view component string value 【发布时间】:2014-01-03 06:02:22 【问题描述】:

我有一个选择器视图,它有四个组件。我创建了一个显示的标签。我有一个两个数组填充第一个组件(组件 0)标签文本和最后一个组件(组件 3)标签文本。对于中心两个组件,我将标签文本设置为这样

label.text = [NSString stringWithFormat:@"%d", row];

注意:这是在viewForRow: 方法中。我在它下面有一个按钮,我想从每个组件中获取选定的数据。如何获取所选中心两个组件的字符串值?

我知道如何使用数组获取这两个,但我不确定如何获取选定的标签文本。如果有一些我刚刚错过或忽略的非常简单的答案,请原谅我。

【问题讨论】:

【参考方案1】:

您应该实现委托方法,pickerView:didSelectRow:inComponent:,它将为您提供被选择的行和组件。您可以使用该信息访问相应数组中的正确索引。

【讨论】:

问题是我没有中间两个组件的数组。我有第一个和最后一个数组,但没有中间数组。我只是想知道我是否能以某种方式获得标签文本的字符串值。 @MiloGosnell,由于您只是将行值放入这些组件中,因此您知道传递给委托方法的行应该是什么。【参考方案2】:

UIPickerView 有一个“selectedRowInComponent:”方法可以帮助你。你也可以从这个link得到一些参考-

【讨论】:

【参考方案3】:
- (void)pickerView: (UIPickerView *) pickerView didSelectRow: (NSInteger)row inComponent: (NSInteger) component 
    rowValue = row;

只需将行索引保留在全局属性中,然后获取这样的值

NSStrin *string=[NSString stringWithFormat:@"%d", rowValue]; 

【讨论】:

谢谢我刚刚意识到我很愚蠢,完全错过了我用行标记文本。我的错。不管怎么说,还是要谢谢你。我会尽快接受你的回答。【参考方案4】:

在选择按钮时,只需获取当前选择器选定的行

NSInteger row = [yourPicker selectedRowInComponent:0];
//Choose it for other components
NSString *yourComponentValue  = [yourArray objectAtIndex:row];

或者

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

   NSString *yourComponentValue = [NSString stringWithFormat:@"%d",[yourarray objectAtIndex:row];
   //Imagine this method will be called whenever the user scrolls. Usability point-of-view i would suggest not to update any of your UI here

当用户滚动选择器并完成滚动时,将调用此 UPicker 委托方法。

选择您想要的位置和时间

【讨论】:

以上是关于获取选定的选取器视图组件字符串值的主要内容,如果未能解决你的问题,请参考以下文章

无法在选择器视图中滚动选择默认值

如何根据标签显示 UIPickerView 的选定值

根据在选取器视图中选择的行组件更新表视图数据

带有选取器(分段控件)子视图和选择手势的列表项

如何根据在选取器视图中选择的行组件更新表视图数据

jQuery怎么获取和字符串值相同的元素