如何将单元格选择加载到父uitableview中

时间:2011-09-07 23:42:36

标签: iphone ios uitableview

我找到了一个例子,我试图包围我,我有一个子视图,将我的在线资源的值加载到uitableview单元格的部分..一切都很好,但现在我想捕获单元格选择并将该数据传递回所选的父视图单元格。我认为这个例子是我需要让它工作但我很难理解示例中的一些变量是什么,我希望有人可以帮助我更好地理解它。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // do usual stuff here including getting the cell

    // determine the data from the IndexPath.row

    if (data == self.checkedData)
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    } else {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // determine the selected data from the IndexPath.row

    if (data != self.checkedData) {
       self.checkedData = data;
    }

    [tableView reloadData];
}

我主要担心的是数据,而 self.checkedData 是从已解析的值数组返回的数据?什么是checkedData?基本上我想在选中时在单元格的末尾加上那些复选标记。

1 个答案:

答案 0 :(得分:1)

考虑到没有多少代码行的上下文,我可能会错,但我会尝试一下。

首先,看起来您一次只能检查一个单元格。

Data似乎是当前的单元格而checkedData是一种跟踪哪个单元格将获得复选标记的方法。

每当选择一个单元格时,它都标记为:

if (data != self.checkedData) {
   self.checkedData = data;
}

控制器要求TableView再次重绘(即重新加载):

[tableView reloadData];

当该操作被触发时,代理会调用tableView:cellForRowAtIndexPath:(以及其他方法),如果您是所选单元格,则会得到一个复选标记:

if (data == self.checkedData)
{
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
} 

否则,你不会:

else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}