Подтвердить что ты не робот

UITableView DidSelectRowAtIndexPath?

У меня есть представление таблицы с несколькими элементами (весь текст). Когда пользователь нажимает на строку, я хочу, чтобы текст в этой ячейке добавлялся в массив.

Как извлечь текст из ячейки?

У меня уже есть:

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

}

Есть ли простая строка, которую я могу использовать для захвата текста из ячейки, которую пользователь нажимает?

4b9b3361

Ответ 1

Используйте UITableView cellForRowAtIndexPath:

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

Ответ 2

Это инверсия того, что вы сделали в cellForRowAtIndexPath.

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

Ответ 3

В общем, вы можете найти ответы на такие вопросы, как это описано в документации Apple. В этом случае просмотрите ссылку на класс UITableView, и вы увидите заголовок раздела: Доступ к ячейкам и разделам. Это даст вам следующий метод:

– 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

Мое первое предположение - получить индекс, [indexPath row]; затем извлекать данные из вашего источника данных (массива или данных ядра), а не непосредственно из самой таблицы.

Ответ 5

Быстрая версия:

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