indexPath.row在tableView didSelectRowAtIndexPath:indexPath
中返回null我以为应该返回选中的行。
当我在调试器中查看indexPath时,它(corectly)返回:“2索引[0,0]”
我错过了什么吗?
答案 0 :(得分:11)
好null
0
。 row
属性是类型int
- 也许您错误地将它用作对象或指针。
您提到您想要选择的实际“行”。如果您的意思是想要选择的单元格,请按以下步骤操作:
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
请注意,如果您以某种方式以编程方式选择当前不可见的行,则会返回nil
。
答案 1 :(得分:1)
indexPath.section
告诉你它要求的部分。
indexPath.row
会告诉您该部分中的哪一行。
两者都从0开始。
你想做这样的事情:
if (indexPath.section == 0) { // 1st section
if (indexPath.row == 0) return cell1;
if (indexPath.row == 1) return cell2;
if (indexPath.row == 2) return cell3;
} else if (indexPath.section == 1) { // 2nd section
if (indexPath.row == 0) return cell4;
if (indexPath.row == 1) return cell5;
if (indexPath.row == 2) return cell6;
}
return nil;
答案 2 :(得分:0)
它将PATH返回到所选行,而不是行(或单元格)本身。
indexPath(0,0)是第一部分的第一个单元格。根据您正在运行的测试,这可能是正确的结果。