使用选定的UIPickerView行来确定要添加到哪个阵列

时间:2011-03-10 08:17:24

标签: iphone xcode ios uitableview uipickerview

所以我设置了一个UIPickerView来显示不同的UITableView数据,具体取决于所选的组件。该表由数组填充,pickerview基本上只是告诉表使用哪个数组。

我希望用户能够为每个单独的数组添加信息,从而更改每个单独的tableview。但是,我在访问我创建的IBAction中的PickerView行时遇到了一些麻烦。

我有一个“添加”按钮,它调用一个IBAction,将用户输入添加到数组中。我遇到麻烦的地方告诉动作将输入添加到哪个数组。

这是我到目前为止所做的:

-(IBAction)postToWall:(id)sender {


[userInput resignFirstResponder];
NSString *userInputString;
userInputString=userInput.text;


[otherPosts addObject:[[NSMutableDictionary alloc]
                       initWithObjectsAndKeys:userInputString,@"post", @"Jeff.png",@"picture",nil]];

[wallTable reloadData];
[userInput setText:@" "];
[sendButton setEnabled:NO];

}

我的直觉是添加一个If语句,它基本上说“如果pickerview行为0,则添加到此数组”,“如果pickerview行为1,则添加到该数组。”这可能吗?如何与pickerview交谈并设置if语句?对不起,我对这一切都有点新鲜。

谢谢你们真的很感激!

2 个答案:

答案 0 :(得分:0)

我的建议是,

创建一个单独的数组,它可以为您的表视图提供数据源。当您选择任何一行选择器时,您创建的数组用于显示和调用数据源意味着这样的事情,

在.h

中声明一个数组
NSMutableArray *dataArray;

使它成为属性并合成它

并在viewDidLoad中分配它并释放它dealloc。

并在选择器中查看委托

 - (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

     if(row==0)
       {
           [dataArray addObjectsFromArray:Array1];
      }
    else
    {
      [dataArray addObjectsFromArray:Array2];
    }

 [self.table reloadData];
}

答案 1 :(得分:0)

如果我是你,我只需将currentArray变量添加到我的代码中,并在每次PickerView更改值时将各个数组设置为此currentArray。

并使用[currentArray addObject:];在你的 - (IBAction)postToWall:(id)发送方法