0

如何把这段代码放在下面?

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    NSString *year = [dateYear objectAtIndex:[picker selectedRowInComponent:0]];
    NSString *month = [dateMonth objectAtIndex:[picker selectedRowInComponent:1]];
    NSString *day = [dateDay objectAtIndex:[picker selectedRowInComponent:2]];
    labelDate1.text = [year stringByAppendingFormat:@" : %@ : %@", month, day];
}

到这里?

- (IBAction)setDateBtn1:(id)sender {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    viewPicker.frame = CGRectMake(0, 0, 320, 460);
    [UIView commitAnimations];
}

我的问题是,我有两个用于 labelDate1 的按钮 setDateBtn1 和用于 labelDate2 的 setDateBtn2,这两个按钮都调用一个 pickerView 来获取显示在每个标签上的输入数据。选择日期后,它只出现在 labelDate1 中,无论我调用什么按钮我的pickerview,但我想要的是 labelDate1 的 setDateBtn1 和 labelDate2 的 setDateBtn2。我希望你能理解我的英语。对于任何帮助,非常感谢你。

4

2 回答 2

2

您需要有一个属性来保存“活动”标签。当按下按钮 1 时,将此属性设置为标签 1。当按下按钮 2 时,将其设置为标签 2。

然后,在上面显示的选择器视图委托方法中,更新活动标签,而不是像现在那样总是更新标签 1。

于 2012-06-23T05:29:25.523 回答
1

如果我正确理解您的问题,您有一个选择器方法,但有两个按钮(或标签),其中任何一个都可以调出您的选择器。在选择器中选择某些东西应该设置 label1 或 label2。

所以... 这是您利用选择器视图的 " tag" 属性的机会。

调出选择器时,将“ viewPicker.tag”设置为“ 1”(用于标签 1)和“ 2”,如果标签 2 的按钮调出选择器。

然后,在您的 " didSelectRow" 函数中,您将知道您正在为哪个标签进行挑选。你可以这样做:

if(pickerView.tag == 1)
    labelDate1.text = [year stringByAppendingFormat:@" : %@ : %@", month, day];
else
    labelDate2.text = [year stringByAppendingFormat:@" : %@ : %@", month, day];

希望我能很好地解释这一点,让你继续前进。

于 2012-06-23T05:28:58.533 回答