CellForRowAtIndexPath で「cell.text」を使用できますが、didSelectRowAtIndexPath で使用しようとすると、宣言されていない「セル」と表示されます。
再度宣言する必要がありますか、またはこの問題を解決するにはどうすればよいですか?
CellForRowAtIndexPath で「cell.text」を使用できますが、didSelectRowAtIndexPath で使用しようとすると、宣言されていない「セル」と表示されます。
再度宣言する必要がありますか、またはこの問題を解決するにはどうすればよいですか?
コールバックでは、参照-(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
です。ほとんどの場合、テーブル データの入力に使用されるデータが に保存されているため、たとえば indexPath 変数array
を使用してそこからアクセスできるはずです(セットアップによっては、あまりにも考慮する必要がある場合があります)。array
[indexPath row]
[indexPath section]