我有一个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函数中,现在它工作得很好。
这是正确的做法吗?
发布于 2014-04-18 13:56:13
你必须打电话给
[pickerView reloadAllComponents];发布于 2014-04-18 14:30:42
UIPickerview委托在viewDidApear方法之前调用的方法,所以你必须调用uipikerview显式的委托方法。
-(void) loadthepicker
{
pickerLoaderArray=[[NSMutableArray alloc] init];
[pickerLoaderArray addObject:@"one"];
[pickerLoaderArray addObject:@"two"];
[pickerLoaderArray addObject:@"thee"];
[pickerLoaderArray addObject:@"four"];
[self.pickerview selectRow:0 inComponent:0 animated:NO];
[self.pickerview reloadAllComponents];
}https://stackoverflow.com/questions/23148215
复制相似问题