如何理解选择了哪个UITableViewCell

时间:2014-06-06 23:44:45

标签: ios objective-c uitableview

我有NSString中存储的NSMutableArray列表,NSMutableArray中的每个值都已分配给UITableViewCell。使用以下方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

如何确定选择了哪个单元格。我正在通过NSIndexPath或任何其他方法寻找某种价值,以便在选择时更改UITableViewCell的图标。在我知道选择了哪个单元格后,我会将单元格重新分配给新图像,然后使用:[self.homeworkTable reloadData]重新加载数据。

我正在寻找某种简单的返回值,如0如果选择了第一个单元格,等等。我尝试使用NSIndexPath没有运气,作为{{1 }}不是NSIndexPath。我该怎么做呢?

修改

我理解答案可能已经在Stack Overflow上,我根本就没有找到它,并且非常感谢我重定向到答案。

3 个答案:

答案 0 :(得分:1)

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

答案 1 :(得分:1)

您可以使用didSelectRowAtIndexPath直接获取indexPath.row(这就是重点!)

- (void)tableView:(UITableView *)tableView 
                        didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
      int index = indexPath.row;
  //....

它将匹配数据源数组的索引。

有时您需要从外部didSelectRowAtIndexPath删除方法获取它,您可以通过以下方式执行此操作:

NSIndexPath *indexPath = [self.homeworkTable indexPathForSelectedRow];
int index = indexPath.row;

答案 2 :(得分:0)

您应该使用indexPath.row,这会获取您在此tableview中选择的行。

您还应该查看有关NSIndexPath的文档:

https://developer.apple.com/library/Mac/documentation/Cocoa/Reference/Foundation/Classes/NSIndexPath_Class/Reference/Reference.html