swift didSelectAtIndexPath не запускается - PullRequest
0 голосов
/ 06 мая 2018

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

В моем первом tableViewController я использую его, чтобы получить номер счета из ячейки и передать его detailTableViewController :

 override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    let indexPath = tableView.indexPathForSelectedRow
    let currentCell = tableView.cellForRow(at: indexPath!) as! CustomBillTableViewCell

    valueToPass = currentCell.billNumberLabel.text
    print(valueToPass)
    performSegue(withIdentifier: "billsDetailSegue", sender: self)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "billsDetailSegue"){
        let detailController = segue.destination as! BillsDetailTableViewController
        detailController.receivedValue = valueToPass
    }
}

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

Ответы [ 3 ]

0 голосов
/ 06 мая 2018

вы переопределяете didDeselect вместо didSelectRowAt.
И вы, вероятно, поставили перед собой цель постучать по клетке.
Отключите его и подключите segue от всего вашего viewController.

0 голосов
/ 06 мая 2018

Возможно, вы установили UITableView' s стили выбора на non-clickable.

Марка UITableView -> Selection -> Single Selection и UITableViewCell -> Selection -> Default или something, кроме None

0 голосов
/ 06 мая 2018

Убедитесь, что вы правильно установили делегата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...