微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从UIPickerView获取选定值

如何解决如何从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];
,您可以使用自定义ViewController类中与pickerView相同的功能在选择器的任何部分中获取所选项目的文本:
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
使用所选项目
[myPickerView selectedRowInComponent:0]
因此可以使用myPickerView第2部分(可能是您的视图控制器的属性)中当前选择的值在自定义单元格中设置标签的文本
[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]];

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。