我可以在我的CellForRowAtIndexPath中使用“cell.text”,但是当我尝试在didSelectRowAtIndexPath上使用它时,它表示未声明的“cell”
我是否必须再次申报或如何解决此问题?
答案 0 :(得分: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
}
答案 1 :(得分:0)
应该没有必要尝试访问didSelectRowAtIndexPath
中的单元格。您很可能将用于填充存储在array
或类似内容中的表数据的数据放在一起,这样您就可以使用indexPath变量从array
访问它。 [indexPath row]
(根据您的设置,您可能还需要考虑[indexPath section]
。)