如何从UIPickerView获取选定的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从UIPickerView获取选定的值相关的知识,希望对你有一定的参考价值。
我知道使用UIDatePicker,您可以使用以下内容:
NSDate *myDate = picker.date;
但我在我的视图中使用UIPickerView。我怎样才能同样获得选择的价值?或者我是否必须设置didSelectRow类型的方法来执行此操作?
更新:此代码适用于具有1个组件的选择器:
NSInteger row;
NSString *weightSelected;
row = [repPicker selectedRowInComponent:0];
weightSelected = [pickerArray objectAtIndex:row];
我为这个带有2个组件的选择器累了这个代码,但它很冷:
NSInteger row1, row2;
NSString *weightSelected1;
NSString *weightSelected2;
row1 = [repPicker selectedRowInComponent:0];
row2 = [repPicker selectedRowInComponent:1];
weightSelected1 = [pickerArray objectAtIndex:row1];
weightSelected2 = [pickerArray objectAtIndex:row2];
NSString *weightSelected = [NSString stringWithFormat:@"%@.%@", weightSelected1, weightSelected2];
答案
您可以通过以下方式获取它:
NSInteger row;
NSArray *repeatPickerData;
UIPickerView *repeatPickerView;
row = [repeatPickerView selectedRowInComponent:0];
self.strPrintRepeat = [repeatPickerData objectAtIndex:row];
另一答案
您可以使用与pickerView相同的函数从自定义ViewController类中获取选择器任何部分中所选项的文本:
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
使用所选项目
[myPickerView selectedRowInComponent:0]
所以使用myPickerView的第二部分中的当前选定值(可能是视图控制器的属性)设置自定义单元格中标签的文本
[cell.label setText:[self pickerView:myPickerView titleForRow:[myPickerView selectedRowInComponent:1] forComponent:1]];
只需更改两个:每个部分1s到:2s等
另一答案
这就是我做的:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
selectedEntry = [allEntries objectAtIndex:row];
}
selectedEntry
是一个NSString
,将在pickerview中保留当前选中的条目。我是目标C的新手,但我认为这更容易。
另一答案
您可以使用以下方法访问给定组件的选定行:
- (NSInteger)selectedRowInComponent:(NSInteger)component
否则,实现委托功能是唯一的其他选择。
另一答案
你必须使用didSelectRow
委托方法,因为UIPickerView
可以有任意数量的组件。没有“objectValue”或类似的东西,因为这完全取决于你。
另一答案
您需要以与应用程序相同的方式询问选择器的代理人。以下是我在UIPickerViewDelegate中的操作方法:
func selectedRowValue(picker : UIPickerView, ic : Int) -> String {
//Row Index
let ir = picker.selectedRow(inComponent: ic);
//Value
let val = self.pickerView(picker,
titleForRow: ir,
forComponent: ic);
return val!;
}
另一答案
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
weightSelected = [pickerArray objectAtIndex:row];
}
另一答案
这是我的答案
- (IBAction)Result:(id)sender
{
self.statusLabel.text = DataSource[[pickerViewTool selectedRowInComponent:0]];
}
以上是关于如何从UIPickerView获取选定的值的主要内容,如果未能解决你的问题,请参考以下文章