如何根据按钮按下重新加载/刷新UIPickerView(带有新数据数组)? [英] How do I reload/refresh the UIPickerView (with new data array) based on button press?

查看:661
本文介绍了如何根据按钮按下重新加载/刷新UIPickerView(带有新数据数组)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



如果我想要一个选择器,对于州/省,我没有看到一个例子,但我嘲笑上面显示的链接,美国/ Can / Mex的选择器。想知道你能动态切换NSMutableArray为UIPickerView然后让它以某种方式重新加载每次你点击US / Can / Mex按钮?我如何去做这个。我采取什么方法。寻找某人指向一个初学者一个线索在正确的方向。

解决方案

您必须实现数据源和代理。



$



   - (IBAction)usButtonPressed:(id)sender {
self.inputArray = self.usArray;
[self.thePicker reloadAllComponents];
}

- (IBAction)mexicoButtonPressed:(id)sender {
self.inputArray = self.mexicoArray;
[self.thePicker reloadAllComponents];
}

数据源方法:

   - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{
return 1;
}


- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [self.inputArray count] ;
}

委托方法:

   - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{
return [self.inputArray objectAtIndex:row];
}


IF I wanted a picker, for states/provinces, i haven't seen an example, but I mocked up shown in the link above, a picker for US/Can/Mex. wondering can you dynamically switch the NSMutableArray for the UIPickerView and then have it somehow reload each time you click on US/Can/Mex buttons??? How do I go about doing this. What approach do I take. Looking for someone to point a beginner for a clue in the right direction.

解决方案

You will have to implement the datasource and the delegate.

once you press a button, set an array pointer to the appropriate array.

than call [thePicker reloadAllComponents];

-(IBAction) usButtonPressed:(id)sender{
    self.inputArray = self.usArray;
    [self.thePicker reloadAllComponents];
}

-(IBAction) mexicoButtonPressed:(id)sender{
    self.inputArray = self.mexicoArray;
    [self.thePicker reloadAllComponents];
}

the datasource methods:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}


- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return [self.inputArray count];
}

the delegate methods:

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [self.inputArray objectAtIndex:row];
}

这篇关于如何根据按钮按下重新加载/刷新UIPickerView(带有新数据数组)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆