如何根据按钮按下重新加载/刷新UIPickerView(带有新数据数组)? [英] How do I reload/refresh the UIPickerView (with new data array) based on button press?
问题描述
如果我想要一个选择器,对于州/省,我没有看到一个例子,但我嘲笑上面显示的链接,美国/ 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屋!