使用可变数组中的值填充选择器视图
Posted
技术标签:
【中文标题】使用可变数组中的值填充选择器视图【英文标题】:Fill picker view with values from a mutable array 【发布时间】:2012-01-26 07:52:34 【问题描述】:我有 2 个按钮和 2 个可变数组。当我按下两个按钮之一时,我想用相应的数组填充UIPickerView
。但问题是您只能实现一次选择器视图方法。所以现在我想检查按下了哪个按钮,然后用相应的数组填充我的选择器视图。有人有想法吗?
-(IBAction)setPicker:(id)sender
if (sender == btncategorie)
[self fillArrayCategorie];
else
[self fillArrayHomeparty];
if (pickview.hidden == TRUE)
[pickview setHidden:NO];
[pickview reloadAllComponents];
else
[pickview setHidden:YES];
[pickview reloadAllComponents];
- (NSString *)pickerView:(UIPickerView *)pickview titleForRow:(NSInteger)row forComponent:(NSInteger)component
return [arrayHomeParty objectAtIndex:row];
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
[pickview setHidden:YES];
homLabel.text= [arrayHomeParty objectAtIndex:row];
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickView
return 1;// assuming a single spinning wheel of strings (not split into left/right for example)
-(NSInteger)pickerView:(UIPickerView *)pickview numberOfRowsInComponent:(NSInteger)component
return [arrayHomeParty count];
这是我填充数组的代码。问题是我如何在我的 pickerview 方法中说,当按下 homeparty 按钮时它们应该使用 arrayHomeparty,并且当按下类别按钮时,pickerviewer 应该填充 arrayCategorie。
【问题讨论】:
【参考方案1】:您可以制作一个反映数据状态的 BOOL 标志,或者只使用UISegmentedControl
在状态之间切换。在 switch 上重新加载您的选择器数据,并在 pickerView:titleForRow:
中返回与状态相对应的标题。
【讨论】:
以上是关于使用可变数组中的值填充选择器视图的主要内容,如果未能解决你的问题,请参考以下文章
从子视图中更改视图中的数组“不能在不可变值上使用变异成员:'self' 是不可变的”
Java新人,关于String类中,private final char value[],到底是数组本身不可变还是数组中的值不可变