swift didSelectAtIndexPath没有被触发

Ari*_*ova 3 uitableview ios swift

首先,我想描述一下我想要做的事情.我有两个tableViewControllers- 第一个包含账单号码列表,第二个应显示账单的详细信息,具体取决于账单号码的哪个单元格被选中.

在我的第一个tableViewController我使用它从单元格获取bill的号码并将其传递给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
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,didSelectRowAt在第一个tableView只有prepare函数触发器中的单元格选择并且它将空值传递给下一个视图后,函数根本不会被触发.

Ara*_*mad 6

你覆盖didDeselect而不是didSelectRowAt.
你可能会设置一个用于点击单元格的segue.
断开它并连接整个segue viewController.