在didSelectRow中使用UIPickerView的问题

时间:2011-08-01 13:57:22

标签: iphone objective-c

我的UIPickerView

中有4个组件

当我在didSelectRow中呼叫UIPickerView时。

当我滚动selectedRowInComponent:1

我正在显示NSLog(@"hours");

当我滚动selectedRowInComponent:0

我正在显示NSLog(@"date");

当我滚动selectedRowInComponent:1

它仍然显示我的日期......不是小时。

@any one帮助我

提前致谢。

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

    //get the values
    NSInteger date_NewRow = [thePickerView selectedRowInComponent:0];
    NSInteger hour_NewRow = [thePickerView selectedRowInComponent:1];
    NSInteger minute_NewRow = [thePickerView selectedRowInComponent:2];
    NSInteger am_pm_NewRow = [thePickerView selectedRowInComponent:3];

    if (date_NewRow) {
        NSLog(@"date");
    }
    else if (hour_NewRow) {
        NSLog(@"hours");
    }


    //some code to save the values 

}

1 个答案:

答案 0 :(得分:1)

恕我直言,你可能会检查错误的值。如果您想知道哪个组件发生了变化,请检查组件变量:

if      (component==0) NSLog(@"date");
else if (component==1) NSLog(@"hour");
else if (component==2) NSLog(@"minute");
else if (component==3) NSLog(@"am-pm");

最佳, 的Sascha