work - uitableview not calling didselectrowatindexpath




UITableView didSelectRowAtIndexPath: не вызывается при первом нажатии (8)

UITableViewCellSelectionStyleNone был установлен для ячейки, отображающей эту проблему (ios9).

Я в конечном итоге позвонил

[tableView deselectRowAtIndexPath:indexPath animated:NO];

первое, что в

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

что не то же самое, но достаточно хорошо. заставляет меня задаться вопросом, что такое разбивка стола ios10.

У меня проблема с UITableView's didSelectRowAtIndexPath .

Моя таблица настроена так, что когда я выбираю строку, она инициализирует новый контроллер представления и толкает его.

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

Я проверил это, установив didSelectRowAtIndexPath останова на didSelectRowAtIndexPath . При добавлении NSLog к методу я вижу, что когда я выбираю вторую строку, которая, наконец, подталкивает новый контроллер представления, я вижу одновременно два оператора журнала в консоли.

Какие-либо предложения?


Если вы установили любой UITapGestureRecognizer в свой класс, вы можете добавить эту строку в свой файл didSelectRowAtIndexPath:

[tableView deselectRowAtIndexPath:indexPath animated:NO];

Это сработало для меня.


Проверка Если вы установили распознаватели Gesture в своем классе. Удаление жестов сработало для меня.


Также проверьте свойство выбора вида таблицы в файле xib. Используйте «Single Selection» или «Multiple Selection» по мере необходимости.


Функция didSelectRowAt не вызывалась в моем приложении в первом или втором кране ... Я пытался решить проблему, не смог найти никакого решения. Но вдруг ı распознал, я использовал change.animation изменение цвета ... Метод делегата не вызывался во время анимации


Я обсуждал даже публикацию этого ответа, потому что я думаю, что звезды выровнены, чтобы это проявилось.

У меня есть вариация этой проблемы и проверили другие решения. На моем столе он не обрабатывает самую последнюю строку моей таблицы при первом касании. Он выделяет его, но didSelectRowAtIndexPath не вызывается. Все остальные строки работают нормально. Но если я вернусь к откату таблицы, тогда, похоже, проблема решена (но тогда вам придется иметь дело с откатом таблицы).


SWIFT 2

Убедитесь, что для этого параметра установлено значение true:

self.tableView.allowsSelection = true

Поместите это над вашим правом после вашего viewDidLoad() и до super.viewDidLoad()


SWIFT 3

Если вы работаете с Swift 3 в классе, который не является UITableViewController и вы используете UITableViewDelegate , вам может понадобиться использовать заголовок метода:

@objc(tableView:didSelectRowAtIndexPath:) func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){...}

Это сработало для меня, хотя я только что перенесла свой проект на Swift 3. Это довольно новое, так что это может быть исправлено позже.





didselectrowatindexpath