使用可变数组中的值填充选择器视图

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: 中返回与状态相对应的标题。

【讨论】:

以上是关于使用可变数组中的值填充选择器视图的主要内容,如果未能解决你的问题,请参考以下文章