根据UIButton标记加载具有不同数据的相同Picker

时间:2015-05-20 07:39:52

标签: ios objective-c iphone uipickerview

我知道,这是一件非常简单的事情,但是我的时间已经不多了,所以问题是我想在选择/点击标签= 1的UIButton并在选择器中加载国家/地区列表时加载日期选择器选择/点击标签= 2的UIButton。

我希望现在的情况非常明确,我的座右铭是创建一个UIPicker实例,并根据按钮标签显示带有数据的选择器。

我已经拥有国家/地区列表的数据,国家/地区选择器在我的视图中显示正常但在我必须在选择器中加载日期时该怎么办。

任何想法都会有所帮助。

*注意: - 我需要一个默认的DateTimeType Picker选择器和一个Picker加载国家/地区列表。

2 个答案:

答案 0 :(得分:0)

  • 点击按钮:设置一个包含最后按下的按钮标签的变量,然后拨打[pickerView reloadAllInputViews]
  • 在您的选择器数据源方法中,切换此变量并根据它返回所需的值。

例如:
-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { switch (lastPressedButtonTag) { case 1: //return something break; case 2: //return something else break; default: //we should not get there break; } }

答案 1 :(得分:0)

开启按钮单击,设置需要加载选择器的枚举。使用以下代码:

- (NSInteger)pickerView:(UIPickerView *)thepickerView numberOfRowsInComponent:(NSInteger)component{
switch (thepickerView.tag) {
    case PICKER_TYPE_A:{
        return [arrayA count];
    }
        break;
    case PICKER_TYPE_B:{
        return [arrayB count];
    }
        break;
    default:
        break;
}
return 0;

}

- (NSString *)pickerView:(UIPickerView *)thepickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

{

    switch (thepickerView.tag) {
        case PICKER_TYPE_A:{
            return [arrayA objectAtIndex:row];
        }
            break;
        case PICKER_TYPE_B:{
            return [arrayB objectAtIndex:row];
        }
            break;
        default:
           break;
       }
    return @"";
}