我有一个带有休闲 viewDidLoad 的 ViewController:
- (void)viewDidLoad
{
[super viewDidLoad];
model = [GlobalDataModel sharedDataModel];
programTypes = @[@"Gewichtsreduktion", @"Verdauungs-/Stoffwechselprobleme", @"Energielosigkeit, Müdigkeit",
@"Stress, Burn-out", @"Unruhe, Schlaflosigkeit", @"Immunsystem, Hautprobleme", @"Sport - Muskelaufbau", @"Sport - Ausdauersport", @"Sport - Leistungssport"];
int row = 8; //[model.infoDictionary[@"programmtyp"] intValue];
[programTypePicker selectRow:row inComponent:0 animated:NO];
}
这个 UIPickerView 的委托方法:
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return programTypes.count;
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
forComponent:(NSInteger)component {
return programTypes[row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
model.infoDictionary[@"programmtyp"] = [NSString stringWithFormat:@"%ld",(long)row];
}
问题是,在 viewDidLoad 中,当我设置 row = 8 时,它总是不会选择最后一行 - 而是倒数第二行(而不是“Sport - Leistungssport”,它选择“Sport - Ausdauersport”)。当我使用小于 8 的行时,它将正常工作。
有人可以帮助我吗,我做错了什么?- 谢谢。