0

我有一个 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);
}

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

4

2 回答 2

2

与其处理在任何给定时刻关注/未选择的内容,为什么不等到选择列表来生成它并让表格跟踪选择的内容。(前提是它不是大量数据)您可以循环遍历表格选定单元格的索引路径,并将您要查找的字符串直接从数据源中提取出来。

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

    for (NSIndexPath *idx in self.tableView.indexPathsForSelectedRows) {
        [arrayOfText addObject:dataSource[idx.row]];
    }
    NSLog(@"%@",arrayOfText);
}
于 2013-08-15T03:04:27.933 回答
0

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

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
[selectedRows removeObject:selectedCell.textLabel.text];
}
于 2013-08-15T03:03:51.337 回答