首先,我想描述一下我想要做的事情. 我有两个tableViewControllers – 第一个包含一个账单号码列表,第二个应该显示有关账单的详细信息,具体取决于选择了账单号码的哪个单元格. 在我的第
我有两个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 } }
问题是didSelectRowAt函数根本没有被触发,在第一个tableView中的单元格选择之后只准备函数触发器并且它将空值传递给下一个视图.
你重写didDeselect而不是didSelectRowAt. 你可能会设置一个用于点击单元格的segue. 断开它并从整个viewController连接segue.