Я пытаюсь реализовать функциональность Peek & Pop с 3D Touch. Я следую инструкциям на сайте Apple .
В нем говорится, что я должен получить индексный путь для выбранной в данный момент ячейки в моем методе подготовки к следующей передаче следующим образом:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let selectedTableViewCell = sender as? UITableViewCell,
let indexPath = tableView.indexPath(for: selectedTableViewCell)
else { preconditionFailure("Expected sender to be a valid table view cell") }
Однако, когда я вызываю это, я получаю ошибку предусловия. Я проверил значение отправителя, и действительно, это не ячейка табличного представления, а мой контроллер табличного представления.
Когда я получаю путь индекса таким образом:
guard let indexPath = tableView.indexPathForSelectedRow else {fatalError()}
Это работает, когда я просто выбираю ячейку табличного представления. Это не работает, когда я пытаюсь заглянуть. Он показывает мне просмотр таблицы, но он пуст. Я ожидал этого, потому что в документации Apple упоминается, что indexPathForSelectedRow
возвращает ноль при просмотре.
Я не знаю, что я делаю неправильно с первым методом и почему отправителем является контроллер табличного представления, а не ячейка табличного представления. Спасибо.