0

我有几个表视图控制器,我希望它们的选择显示在“ResultTableViewController”上。我也有收集所选数据的数组,当我最终将其推送到“ResultViewController”时,它只显示最后一个选择。请帮忙

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    firstarr = [[NSMutableArray alloc]init]; //array with questions
    [self.firstarr addObject:[self.data objectAtIndex:indexPath.row]]; //collects the data properly

    BodyDetailViewController* vc =[[BodyDetailViewController alloc] initWithNibName:@"BodyDetailViewController" bundle:nil];
    vc.someArray = firstarr; //some array - ViewController with Results.

    [self.navigationController pushViewController:vc animated:YES];
}
4

2 回答 2

0

这个...

firstarr = [[NSMutableArray alloc]init]; //array with questions

...创建一个新数组。firstarr当您进行新选择时,以前的任何内容都消失了。

要么在其他地方创建一次数组(当对象初始化时?),要么将其内容附加到vc.someArray而不是替换它。

于 2012-10-09T12:33:42.417 回答
0

您必须删除此行:

firstarr = [[NSMutableArray alloc]init];

因为每次选择单元格时都会初始化 NSMutableArray,所以之前存储的所有数据都会被删除,并且vc.someArray只得到一个只有最后一次选择的数组,这就是为什么;)

在方法之外初始化您的 NSMutableArray,viewDidLoad例如

于 2012-10-09T12:46:49.010 回答