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

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' 是不可变的”

使用可变数组从 Plist 加载表视图中的部分时遇到问题

读取特定行中的值(可变数量的值)并将它们存储在数组中

Java新人,关于String类中,private final char value[],到底是数组本身不可变还是数组中的值不可变

用可变数组填充 tableview