web-dev-qa-db-ja.com

UITableView DidSelectRowAtIndexPath?

いくつかの項目(すべてテキスト)を含むテーブルビューがあります。ユーザーが行をクリックすると、そのセルのテキストが配列に追加されます。

セルからテキストを取得するにはどうすればよいですか?

私は既に持っています:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

}

ユーザーがクリックしたセルからテキストを取得するために使用できる簡単な行はありますか?

25
user964627

UITableView 's cellForRowAtIndexPath:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    NSString *cellText = cell.textLabel.text;
}
94
Joe

CellForRowAtIndexPathで行ったことの逆です。

 [myArray addObject: [datasource objectAtIndex:indexPath.row]];
6
Rayfleck

一般的に、このような質問に対するほとんどの回答は、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];
}
4
PengOne

最初の推測は、インデックス[indexPath行]を取得することです。次に、テーブル自体から直接ではなく、データソース(配列またはコアデータ)からデータをフェッチします。

3

迅速なバージョン:

let cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
let cellText: String = cell.textLabel.text
2
Gleb Karpushkin