Я получаю нежелательный результат при нажатии на ячейку таблицы.Я только хочу сделать переход, когда кнопка аксессуара нажата.Текущий код работает, когда я нажимаю кнопку доступа к ячейке.Но если я коснусь представления содержимого, произойдет переход, и мой prepare(for:sender:)
не удастся, потому что отправитель не IndexPath, это TableViewCell.Кстати, представление, содержащее TableView, находится в стеке контроллера навигации.
Я попытался отменить выбор параметра «Взаимодействие с пользователем» для представления содержимого ячейки представления таблицы, но это, похоже, также блокирует вспомогательную кнопку.
Это работает, как и ожидалось
func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
performSegue(withIdentifier: "ShowDetails", sender: indexPath)
}
Когда ячейка повернута, она вызывается до того, как вызывается метод prepare (for: sender :).
func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
log.debug("didHightlightRowAt")/
}
Я нене знаю, как предотвратить переход при постукивании по ячейке.Когда ячейка вызывает prepare(for:sender:)
, я получаю эту ошибку: Не удалось привести значение типа «UITableViewCell» (0x11edbdaa0) к «NSIndexPath» (0x10e209cf8).2019-06-06 12: 10: 24.086845-0500 Землетрясения [1668: 53901] Не удалось преобразовать значение типа 'UITableViewCell' (0x11edbdaa0) в 'NSIndexPath' (0x10e209cf8).
, когда этот код выполняется:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.destination is DetailViewController {
let indexPath = sender as! IndexPath
(потому что отправитель - это ячейка просмотра таблицы)