UIPickerView didSelectRow发布iPhone
我有三个标签,我想用pickerview中选定的行填充它们。类似于如果第一个标签已填充,则第二个标签应填充选定的行值,如果第一个和第二个标签都已填充,则第三个标签应填充 我正在尝试这段代码,但它只为第一个标签赋值UIPickerView didSelectRow发布iPhone,iphone,objective-c,xcode,cocoa-touch,Iphone,Objective C,Xcode,Cocoa Touch,我有三个标签,我想用pickerview中选定的行填充它们。类似于如果第一个标签已填充,则第二个标签应填充选定的行值,如果第一个和第二个标签都已填充,则第三个标签应填充 我正在尝试这段代码,但它只为第一个标签赋值 -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { NSString *selectedReward
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
inComponent:(NSInteger)component
{
NSString *selectedReward = [self.rewards objectAtIndex:row];
if ([reward1.text isEqualToString:selectedReward]) {
if ([reward2.text isEqualToString:selectedReward]) {
reward3.text = selectedReward;
}
reward2.text = selectedReward;
}
else {
reward1.text = selectedReward;
}
}
通过比较其
长度来尝试检查UILabel
if ([label1.text length]==0){
//set label 1
}
else if ([label2.text length]==0){
//set label 2
}
else{
//set label 3.
}
我认为这是因为您总是选择不同的行,而行文本是不同的。然后,所选值始终与第一个标签的文本不同,因此函数将设置标签1的文本
我想你应该测试一下课文的长度
if ([reward1.text length] == 0) {reward1.text = selectedReward;} // and so on
在代码中,您正在使用selectedward
检查标签文本
因此,如果每次选择不同的选择器组件,则它将只更新第一个标签(将输入代码的其他部分),但如果选择相同的选择器组件(与为第一个标签选择的相同),则它将输入if部分
您可以继续执行@loser1089906
建议的操作。是否检查您的[self.rewards objectAtIndex:row]是否在每行返回不同的值?它每次返回不同的值,但只分配给一个标签