UITableView DidSelectRowAtIndexPath?
У меня есть представление таблицы с несколькими элементами (весь текст). Когда пользователь нажимает на строку, я хочу, чтобы текст в этой ячейке добавлялся в массив.
Как извлечь текст из ячейки?
У меня уже есть:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
Есть ли простая строка, которую я могу использовать для захвата текста из ячейки, которую пользователь нажимает?
Ответы
Ответ 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