所以我知道,如果你们不喜欢我的问题,你会投票让我失望并降低我的声誉:(但我需要学习,找不到答案,所以在这里我再次冒着声誉。 现在到了这一点。我所要做的就是一个带有两个按钮的视图和按钮下的一个表视图,这个表视图需要显示一个不同的数组,这取决于女巫按钮被点击,换句话说,我想要它做的就是我点击button1显示array1,如果我点击button2显示array2,简单!但我无法让它发挥作用。 以下是我的代码示例:
- (void)viewDidLoad
{
array1 = [[NSArray arrayWithObjects:
@"A",
@"B",
@"c",
@"D", nil] retain];
array2 = [[NSArray arrayWithObjects:
@"1",
@"2",
@"3",
@"4", nil] retain];
}
- (IBAction)btnPeriodicos:(id)sender {
displayArray = 1;
}
- (IBAction)btnRadios:(id)sender {
displayArray = 2;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (displayArray == 1) {
return [array1 count];
}
if (displayArray == 2) {
return [array2 count];
}
[self.tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
cell.textLabel.textAlignment = UITextAlignmentCenter;
cell.textLabel.textColor = [UIColor blackColor];
if (menuNumberInt == 1) {
cell.textLabel.text = [[periodicoArray objectAtIndex:indexPath.row] retain];
}
if (menuNumberInt == 2) {
cell.textLabel.text = [[radioArray objectAtIndex:indexPath.row] retain];
}
return cell;
}
如果我将numberOfRowsInSection的[array1 count]和cell.textLabel.text = [[periodicoArray objectAtIndex:indexPath.row] retain]替换为if else语句;应用程序加载表填充该数组,所以我猜表可以工作,但如何让我的按钮更改表格单元格? 任何帮助是极大的赞赏。 感谢
答案 0 :(得分:1)
您可以拥有NSArray * currentArray的iVar变量。在viewDidLoad中,您可以定义两个数组(如您当前所做),但随后将currentArray分配给array1。
然后,更改所有tableView回调以操作currentArray并删除if(displayArray == x)检查。
在(IBAction)按钮处理程序中,将currentArray分配给相应的数组并调用[tableView reloadData]。这将清除表并触发所有tableView回调再次发生。由于currentArray已更改,所有回调都将从相应的数组中提取数据。
希望有所帮助。