У меня есть UIPickerview, который я изначально устанавливал из viewDidLoad. Он работал отлично.
Но я хочу, чтобы он обновлялся каждый раз, когда я возвращаюсь из другого представления, поэтому я поставил viewDidAppear
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"View will appear");
[self loadthepicker];
}
-(void) loadthepicker
{
pickerLoaderArray=[[NSMutableArray alloc] init];
[pickerLoaderArray addObject:@"one"];
[pickerLoaderArray addObject:@"two"];
[pickerLoaderArray addObject:@"thee"];
[pickerLoaderArray addObject:@"four"];
[pickerView selectRow:0 inComponent:0 animated:NO];
}
-(NSInteger)numberOfComponentsInPickerView:(NSInteger)component
{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)picker numberOfRowsInComponent:(NSInteger)component
{
return [pickerLoaderArray count];
}
-(NSString *)pickerView:(UIPickerView *)picker titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [pickerLoaderArray objectAtIndex:row];
}
Хорошо, я думаю, что я мог бы получить ответ:
[pickerView reloadAllComponents];
Я добавил это в функцию loadthepicker, и теперь она работает нормально.
Это правильный способ сделать это?