禁用单元格滑动操作

Disable Cell Swipe Action

所以我有一个应用程序(用 Swift 编写)允许用户在 searchController 中搜索高尔夫球场。然后他们可以 select 该课程,然后 select 编辑的课程进入 tableView。我为搜索控制器和 selected 课程列表使用相同的视图控制器。

我遇到的问题是我希望用户能够滑动删除他们的 selected 课程,而不是在搜索控制器处于活动状态时填充的课程。滑动删除操作在常规 tableView 中有效。当 searchController 处于活动状态时,我将其设置为禁用删除按钮的位置。但是我想要做的是,如果 searchController 处于活动状态,则单元格根本无法滑动。似乎无法让它发挥作用。有什么建议么?请和谢谢。

这是我的代码:

 override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    if searchController.active {

    UITableViewCellEditingStyle.None

    } else {

    let deletedValue = previousCoursesFromRealm[indexPath.row]

    if editingStyle == UITableViewCellEditingStyle.Delete {
        let realm = try! Realm()
        try! realm.write {
        realm.delete(deletedValue)
        }

     coursesTableView.reloadData()

     }
    }
   }  

我认为您正在寻找的方法是 tableView(_:canEditRowAtIndexPath:)

在此方法中返回 false 应该会禁用滑动操作。然后您可以将此值绑定到您的搜索控制器:

override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return !searchController.active
}