我可以在 CellForRowAtIndexPath 中使用“cell.text”,但是当我尝试在 didSelectRowAtIndexPath 中使用它时,它会显示未声明的“cell”
我是否必须再次声明或如何解决此问题?
我可以在 CellForRowAtIndexPath 中使用“cell.text”,但是当我尝试在 didSelectRowAtIndexPath 中使用它时,它会显示未声明的“cell”
我是否必须再次声明或如何解决此问题?
在-(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
}
应该没有真正需要尝试访问didSelectRowAtIndexPath
. 您很可能将用于填充表数据的数据存储在一个array
或类似文件中,因此您应该能够array
使用 indexPath 变量从该数据中访问它(例如[indexPath row]
,您可能需要[indexPath section]
根据您的设置考虑)。