我有下面的didSelect row函数代码,目标是让两个表根据触摸的表行执行不同的操作。第一部分很好。如果tableView 2被触摸,则打印行工作,行被取消选择,但如果tableView 3被选择,则不会调用打印。两个表视图在viewController中都有出口。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == self.tableView2 {
sorted = true
print ("TEST")
filteredDevices.removeAll()
filteredOS.removeAll()
filteredReported.removeAll()
filteredMac.removeAll()
filteredVersion.removeAll()
let facility = defaults.object(forKey: "facility") as! String
self.tableView.reloadData()
tableView2.deselectRow(at: tableView2.indexPathForSelectedRow!, animated: true)
}
if tableView == tableView3 {
sorted = true
print ("test")
filteredDevices.removeAll()
filteredOS.removeAll()
filteredReported.removeAll()
filteredMac.removeAll()
filteredVersion.removeAll()
self.tableView.reloadData()
print ("test")
tableView3.deselectRow(at: tableView3.indexPathForSelectedRow!, animated: true)
}
}
最佳答案
很可能您忘记在TableViewController中设置tableView3的委托。
tableView3.delegate = self
因为tableView2正在工作,所以您必须已经为tableView2设置了这样的行。只需为tableView3添加一个,就应该很好了。
关于swift - didSelectRowAt有两个表Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45245561/