【发布时间】:2017-03-03 16:21:47
【问题描述】:
我正在尝试从 Tableview 中删除一个项目,如果 SearchBar 为空,一切正常,(indexPath 是正确的索引)。但如果我使用 SearchBar 我会得到过滤项目的索引。
如何从 Tableview 中获取项目的当前索引?但是在使用 SearchBar 过滤之后。
func filterTableView(ind:Int,text:String) {
switch ind {
case selectedScope.reviewDate.rawValue:
filteredDays = ViewController.reviewDaysArr.filter({ (mod) -> Bool in
return mod.reviewDate.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()
case selectedScope.reviewPlace.rawValue:
filteredDays = ViewController.reviewDaysArr.filter({ (mod) -> Bool in
return mod.reviewPlace.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()
case selectedScope.reviewSum.rawValue:
filteredDays = ViewController.reviewDaysArr.filter({ (mod) -> Bool in
return mod.reviewSum.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()
}
}
static var reviewDaysArr:[ReviewDay] = [
ReviewDay(reviewDate: "03/03/2017", reviewPlace: "Manhattan"),
ReviewDay(reviewDate: "03/03/2017", reviewPlace: "Manhattan"),
ReviewDay(reviewDate: "05/03/2017", reviewPlace: "New Jersey")
]
var filteredDays = reviewDaysArr
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
ViewController.reviewDaysArr.remove(at: indexPath.row)
filteredDays = ViewController.reviewDaysArr
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
【问题讨论】:
-
过滤主数组而不是重新加载表格视图
-
同时添加您如何过滤数据的代码。
-
@NiravD 完成...
-
@MarryG 好的,让我检查一下
标签: ios uitableview swift3 uisearchbar