0

我有一个具有多个实例变量(、、、等)的name对象address数组number。我还有一个UITableViewController其表视图填充了name这些对象中的每一个的变量。

我还创建了一个DetailViewController,当使用 选择对象的指定单元格时,它应该显示这些对象所持有的其余信息tableView:didSelectRowAtIndexPath:。问题是,这些单元格只有对单元格对象name变量的引用。

我应该如何解决这个问题?我是否需要对单元格进行子类化,以便可以为每个单元格提供对整个对象的引用?还是有更简单的方法?

这是我目前的tableView:cellForRowAtIndexPath:方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
    }
    cell.textLabel.text = [[listings objectAtIndex:indexPath.row] objectForKey:@"listingName"];
    return cell;
}

更新:我突然想到我可以从中获取行号indexPath并从数组中获取指定的对象。这会更可行吗?

4

2 回答 2

4

In tableView:didSelectRowAtIndexPath: you can just use [listings objectAtIndex:indexPath.row] to get the selected object, and pass that to the detail view controller.

(You should never try to use the table view cells as data source.)

于 2013-08-02T20:23:44.257 回答
2

由于您直接从它们的数组位置显示列表,因此一旦按下行,您就可以再次以相同的方式将它们取出。

tableView:didSelectRowAtIndexPath:只是做得到有[listings objectAtIndex:indexPath.row]问题的对象并将其发送到DetailViewController

于 2013-08-02T20:24:26.243 回答