首页 文章

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

提问于
浏览
0

我找到了一种方法,通过使用 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单元格一样)

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

1 回答

  • 0

    您正在寻找的不是 UITableViewDelegate 方法,而是 UITableViewDataSource 方法 .

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

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

    现在你应该做什么:

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

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

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

    method()
    

相关问题