所以我设置了一个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语句?对不起,我对这一切都有点新鲜。
谢谢你们真的很感激!
答案 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)发送方法