以编程方式调用表视图单元格的 .delete 编辑样式



我找到了一种方法,可以通过使用delegate方法以编程方式在tableView中选择一行,如以下答案中所建议的:

https://stackoverflow.com/a/40589905/3511695

现在,我的每个tableView的单元格都有一个.deleteeditingStyle选项:

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if (editingStyle == .delete) {
// code that's called when user presses delete button
}

如何以编程方式调用此delete函数?即模拟用户按下delete按钮?(就像我能够以编程方式模拟按下tableView单元格一样(

我的if (editingStyle == .delete) {}中有一个alertController,我需要再次显示它,这就是为什么我需要以编程方式模拟用户按下UI中的Delete按钮,而不是简单地删除行。

您要查找的不是UITableViewDelegate方法,而是UITableViewDataSource方法。

这不是最好的解决方案,但如果你真的想这样做,请在TableView的dataSource上调用此方法,当参数传递给TableView时,将Style编辑为.delete和某些IndexPath

tableView.dataSource?.tableView!(tableView, commit: .delete, forRowAt: indexPath)

现在你应该做什么:

您应该将commit数据源方法中if语句的代码放入新方法中,然后在此处调用此方法

if (editingStyle == .delete) {
method()
}

而不是调用tableView.dataSource?...

method()

最新更新