いくつかの項目(すべてテキスト)を含むテーブルビューがあります。ユーザーが行をクリックすると、そのセルのテキストが配列に追加されます。
セルからテキストを取得するにはどうすればよいですか?
私は既に持っています:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
ユーザーがクリックしたセルからテキストを取得するために使用できる簡単な行はありますか?
UITableView
's cellForRowAtIndexPath:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
}
CellForRowAtIndexPathで行ったことの逆です。
[myArray addObject: [datasource objectAtIndex:indexPath.row]];
一般的に、このような質問に対するほとんどの回答は、Apple documentation。このケースについては、 UITableView Class Reference また、セクションヘッダーが表示されます:Accessing Cells and Sections。これにより、次のメソッドが提供されます。
– cellForRowAtIndexPath:
次に、これを使用してセルにアクセスし、セルからテキストを取得します(不明な場合は、 UITableViewCell Class Reference をご覧ください).
すべてを合わせると、メソッドは次のようになります。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
[myArray addObject:cellText];
}
最初の推測は、インデックス[indexPath行]を取得することです。次に、テーブル自体から直接ではなく、データソース(配列またはコアデータ)からデータをフェッチします。
迅速なバージョン:
let cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
let cellText: String = cell.textLabel.text