在我正在开发的应用程序上,我有UIPickerView
的日程安排列表,我想要做的是在选择列表中的第6项后启用按钮。
我有这段代码,但我不能正常工作
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
// Handle the selection
[trainSchedule setText:[NSString stringWithFormat:@"%@",[schedArray objectAtIndex:[pickerView selectedRowInComponent:0]]]];
if ([schedArray objectAtIndex:[schedArray objectAtIndex:[pickerView selectedRowInComponent:6]]]) { sendTrainRequest.enabled = YES; } else { sendTrainRequest.enabled = NO; }
}
我也有这个警告......
Incompatible pointer to integer conversion sending 'id' to parameter of type 'NSUInteger' (aka 'unsigned int
如何能够做我想做的事情?
答案 0 :(得分:0)
我认为您正在寻找名为UIPickerViewDelegate
的{{1}}方法here
答案 1 :(得分:0)
我认为问题出在你的if语句中。如果我正在解析您想要正确说出的内容,则如果选择了选择器中的第六项,则希望将sendTrainRequest.enabled设置为YES。您的if语句现在令人困惑,并且警告是因为您要将对象发送到schedArray的objectAtIndex
方法,当您应该发送整数时。试试这个:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
// Handle the selection
[trainSchedule setText:[NSString stringWithFormat:@"%@",[schedArray objectAtIndex:[pickerView selectedRowInComponent:0]]]];
if ([pickerView selectedRowInComponent:0] == 5)
{ sendTrainRequest.enabled = YES; }
else
{ sendTrainRequest.enabled = NO; }
}
请注意,此代码段中的硬编码5将评估为选择器视图中的第六项,因为它是零引用的。