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