获取所有选定行的文本

时间:2013-08-15 02:57:43

标签: ios cocoa-touch uitableview

我有一个UITableView,我试图在按下按钮时获取所有选定行的文本。这是我到目前为止所做的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
    [selectedRows addObject:selectedCell.textLabel.text];
}

selectedRows是一个数组。

这是我的按钮按下功能,我需要访问选中的行标题:

- (IBAction)selectList:(id)sender {
    NSLog(@"%@", selectedRows);
}

这对我不起作用,因为如果用户取消选中一行然后单击提交按钮 - 它就不会反映在数组中。我将不胜感激。感谢。

2 个答案:

答案 0 :(得分:2)

为什么不等待选择列表来生成它并让表跟踪所选内容,而不是处理在任何给定时刻选择/未被选中的内容。 (假设它不是大量的数据)您可以循环遍历表格所选单元格的索引路径,并将您正在寻找的字符串直接从数据源中拉出来。

- (IBAction)selectList:(id)sender
{
    NSMutableArray *arrayOfText = [NSMutableArray new];

    for (NSIndexPath *idx in self.tableView.indexPathsForSelectedRows) {
        [arrayOfText addObject:dataSource[idx.row]];
    }
    NSLog(@"%@",arrayOfText);
}

答案 1 :(得分:0)

您可以添加didDeselectRowAtIndexPath函数并从数组中删除该项。

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
[selectedRows removeObject:selectedCell.textLabel.text];
}