以编程方式调用tableView单元格的.delete editStyle

时间:2018-12-09 22:25:47

标签: ios swift uitableview

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

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

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

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单元格一样)

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

1 个答案:

答案 0 :(得分:0)

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

这不是最佳解决方案,但是如果您确实想这样做,请在TableView的dataSource上调用此方法,并在参数传递TableView时将其调用,editStyle为.delete和某些{ {1}}

IndexPath

现在您应该做什么:

您应该将代码从tableView.dataSource?.tableView!(tableView, commit: .delete, forRowAt: indexPath) 数据源方法中的if语句放到新方法中,然后在这里调用此方法

commit

,而不是调用if (editingStyle == .delete) { method() }

tableView.dataSource?...