所以我有一个应用程序(用Swift编写),允许用户在searchController中搜索高尔夫球场。然后他们可以选择该课程,然后选择的课程进入tableView。我对搜索控制器和所选课程列表使用相同的视图控制器。
我遇到的问题是我希望用户能够滑动以删除他们选择的课程,而不是在搜索控制器处于活动状态时填充搜索控制器的课程。滑动删除操作正在常规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()
}
}
}
答案 0 :(得分:6)
我认为您正在寻找的方法是tableView(_:canEditRowAtIndexPath:)
。
在此方法中返回false
应禁用滑动操作。然后,您可以将此值与搜索控制器绑定:
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return !searchController.active
}