indexPath.row在tableView didSelectRowAtIndexPath中返回null

时间:2009-07-24 15:20:06

标签: iphone uitableview uikit

indexPath.row在tableView didSelectRowAtIndexPath:indexPath

中返回null

我以为应该返回选中的行。

当我在调试器中查看indexPath时,它(corectly)返回:“2索引[0,0]”

我错过了什么吗?

3 个答案:

答案 0 :(得分:11)

null 0row属性是类型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)是第一部分的第一个单元格。根据您正在运行的测试,这可能是正确的结果。