我有一个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);
}
这对我不起作用,因为如果用户取消选中一行然后单击提交按钮 - 它就不会反映在数组中。我将不胜感激。感谢。
答案 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];
}