UITableViewCell错误调用tableView:didSelectRowAtIndexPath:

时间:2012-01-20 05:28:53

标签: select uitableview call

我想访问选定的UITableViewCell并选择那个,

int b = lastIndexPath.row + 1;   //lastIndexPath references to the current selected cell index path

NSIndexPath *myNextIndex = [[NSIndexPath alloc]initWithIndex:b];

[self tableView:table didSelectRowAtIndexPath:myNextIndex];

所以到目前为止一切正常,b值为2.但是当tableView:didSelectRowAtIndexPath:并且我想得到i的值时,

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

int i = indexPath.row;

//some other stuff

}

我得到的值是81809923,但是i的值应该是2。

我不知道为什么会这样。如果有人有任何想法请帮助。

感谢

1 个答案:

答案 0 :(得分:0)

UITablleView中的位置由部分和行键入(即使您的表只有一个部分)。 iOS SDK专门添加utility method,以便更轻松地使用表格视图。

在这种情况下,您可以使用它:

NSIndexPath* myNextIndex = [NSIndexPath indexPathForRow:b inSection:0];  //call 'retain' if you need to

至于您的81809923值,这可能是偶然垃圾邮件,因为原始代码没有为row的{​​{1}}字段分配任何值。