我有一个警报,其中我使用表视图来显示一些数据。
用户可以从表格视图数据中选择任何项目。
现在,当我尝试选择didSelectRow
方法中的任何项目时,它不会选择项目。我也使用了断点,但它也没有抓住断点。
我已经给它的代表和数据源一切都很好,但我很困惑为什么它不起作用?
我的代码是:
extension YourOrdersViewController : UITableViewDelegate, UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return PreOrderService.instance.PreOrderModelInstance.count
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Hello")
print(PreOrderService.instance.PreOrderModelInstance[indexPath.row].perorder_time)
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
if tableView == orderTableView{
print("Dishes")
}
else{
orderTableView.cellForRow(at: indexPath)?.accessoryType = .none
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = orderTableView.dequeueReusableCell(withIdentifier: "orderCell", for: indexPath) as!
PreOrderTableViewCell
cell.titleLbl.text = PreOrderService.instance.PreOrderModelInstance[indexPath.row].perorder_time
print(cell.titleLbl.text!)
cell.selectionStyle = .none
cell.selectionStyle = UITableViewCellSelectionStyle.none
cell.accessoryType = cell.isSelected ? .checkmark : .none
return cell
}
}
View Controller看起来像这样, enter image description here
答案 0 :(得分:0)
检查或您是否设置了此值:
如果设置No Selection
而不是Single Selection
,则不会执行func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
方法。
答案 1 :(得分:0)
你的UIViewControlller上是否有任何手势识别器。如果确实如此,并且手势识别器位于响应者链上的表视图之上,则只需单击一下即可为表视图留下任何内容。
答案 2 :(得分:0)
我认为代码中的整个问题是:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
self.tableView.cellForRow(at: indexPath)?.accessoryType = .none
}
答案 3 :(得分:-1)
确保设置了委托和数据源。 如果您通过情节提要板创建视图,请确保为委托/数据源设置iboutlet。
这两行都意味着同样的事情:所以删除第二行。
cell.selectionStyle = .none
cell.selectionStyle = UITableViewCellSelectionStyle.none
答案 4 :(得分:-1)
在Main.storyboard中选择您的表格视图,然后在属性检查器中将选择更改为单一选择