使用函数editActionsForRowAt
删除表格的单元格时,需要用户采取删除操作(在单元格中轻扫和点击或完全滑动)有没有办法在没有用户的情况下调用它什么都不做?
答案 0 :(得分:0)
作为一个安全和风格的问题,你永远不应该称一个方法是Cocoa所拥有的委托方法或其他事件。
但没有什么可以阻止你"分解"该功能,转换为editActionsForRowAt
调用的方法,也可以调用。
答案 1 :(得分:0)
是的,您可以自己从代码中调用此方法,但正如其他答案所述,您不应该调用委托所有者调用的方法。
更好的方法是tableView(_:editActionsForRowAt)
的{{3}}内容,并从您想要的任何地方调用和的新提取方法。
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let removeAction = UITableViewRowAction(style: .destructive, title: "Delete", handler: { [weak self] action, indexPath in
// Call extracted method
self?.extractedAction(at: indexPath)
})
return [removeAction]
}
func extractedAction(at indexPath: IndexPath) {
// Your old delete from old tableView(_:editActionsForRowAt) logic goes here.
}
func anyOtherPlaceInYourCode() {
let indexPath = IndexPath(...) // which row?
extractedAction(at: indexPath)
}