我有一大堆数据,我在UITable中显示。该表按字母顺序分为几个部分。当用户选择一个单元格时,我需要弄清楚该项目在数组中的位置。单元格中唯一的识别数据是标签,似乎没有任何帮助。数组中的数据也不一定按字母顺序排序。如何确定他们选择的数组中的哪个项目。我可以将元数据或其他东西绑定到表格单元格吗?我想根据indexPath和数组中的总计数进行某种计算,但由于数组不是按字母顺序排列的,而且表格是,这不起作用。
希望这是有道理的。谢谢你的帮助。
答案 0 :(得分:1)
这通常是解决问题的一个问题。当您为tableview构建数据源时,您必须以对您能够一致地显示信息的方式对数组进行排序,这也将导致您能够始终如一地访问它。
换句话说,您正在访问构建用于-tableView:cellforrowatindexpath:的数据源调用的表的内容,用于构建单元格的算法将与您使用索引访问所选单元格的算法相同didSelectCellAtIndexPath的路径:。
答案 1 :(得分:0)
您应该查看下面的UITableView Delegate方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
它将给出所选单元格的索引路径。获得索引路径后,您可以访问行和节属性,如下所示:
indexPath.row;
indexPath.section;
获得这两个值之后,您可以访问数组对象并查看每个部分中选择的项目:
NSLog(@"Section %i, Row %i, Item %@", indexPath.section, indexPath.row, [array objectAtIndex:indexPath.row]);