首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未从viewDidAppear加载UIPickerView

未从viewDidAppear加载UIPickerView
EN

Stack Overflow用户
提问于 2014-04-18 13:50:34
回答 2查看 180关注 0票数 0

我有一个UIPickerview,它是我最初在viewDidLoad中设置的。它工作得非常好。

但我希望每次从另一个视图返回时都刷新它,所以我放入了viewDidAppear

代码语言:javascript
复制
- (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函数中,现在它工作得很好。

这是正确的做法吗?

EN

回答 2

Stack Overflow用户

发布于 2014-04-18 13:56:13

你必须打电话给

代码语言:javascript
复制
[pickerView reloadAllComponents];
票数 1
EN

Stack Overflow用户

发布于 2014-04-18 14:30:42

UIPickerview委托在viewDidApear方法之前调用的方法,所以你必须调用uipikerview显式的委托方法。

代码语言:javascript
复制
-(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];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23148215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档