-1

我可以在 CellForRowAtIndexPath 中使用“cell.text”,但是当我尝试在 didSelectRowAtIndexPath 中使用它时,它会显示未声明的“cell”

我是否必须再次声明或如何解决此问题?

4

2 回答 2

2

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;回调中,您只是没有任何cell参考。您可以通过- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;例行程序获得它,如下所示:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
    //whatever you want to do with the cell
}

但无论如何,正如您之前创建的单元格一样,您应该能够从indexPath. 像这样的东西:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSInteger row = indexPath.row;
    SomeDataObject* object = [someDataArray objectAtIndex:row];
    //whatever you want to do with the data
}
于 2012-08-20T08:04:05.573 回答
0

应该没有真正需要尝试访问didSelectRowAtIndexPath. 您很可能将用于填充表数据的数据存储在一个array或类似文件中,因此您应该能够array使用 indexPath 变量从该数据中访问它(例如[indexPath row],您可能需要[indexPath section]根据您的设置考虑)。

于 2012-08-20T08:03:36.207 回答