如何使用 Swift 清除 SearchBar 结果并在 tableview 中显示完整数据?
How to clear SearchBar result and show full data in tableview using Swift?
我的场景,我正在将 JSON
数据加载到 tableview
中,我在这里为单个 tableview
和 search-bar
维护两个分段控制器按钮。单击第一个分段按钮进行搜索我可以获得很好的搜索结果,如果我单击第二个分段按钮,也会显示相同的搜索结果。所以,当我点击一到二段时,我需要清除搜索结果并加载正常数据。当我在 searchBar
.
中单击关闭按钮时,相同的场景运行良好
我的代码
@IBAction func switchTableviewAction(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
print(“one”)
self.searchResultClear()
currentTableView = sender.selectedSegmentIndex
self.tableView.reloadData()
case 1:
print(“two”)
self.searchResultClear()
currentTableView = sender.selectedSegmentIndex
self.tableView.reloadData()
default:
break;
}
}
// MARK: Search Result Clear working but not clearing result
func searchResultClear() {
//self.searchBar.text = ""
//self.searchBar.showsCancelButton = false
//self.filteredLanguages.removeAll()
//self.tableView.reloadData()
}
除了清除搜索栏,您还需要从数据源中删除筛选。数据源是指您在 table 视图中显示的对象数组。您必须将过滤功能与过滤文本一起使用。如果要清除搜索栏,还需要恢复原始 JSON 数据(未过滤的数据),然后调用 reloadData
当段控件选择改变时,您只需要用空文本调用searchBar textDidChange
方法
@IBAction func switchTableviewAction(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
self.searchBar(self.searchBar, textDidChange: "")
case 1:
self.searchBar(self.searchBar, textDidChange: "")
default:
break;
}
}
我的场景,我正在将 JSON
数据加载到 tableview
中,我在这里为单个 tableview
和 search-bar
维护两个分段控制器按钮。单击第一个分段按钮进行搜索我可以获得很好的搜索结果,如果我单击第二个分段按钮,也会显示相同的搜索结果。所以,当我点击一到二段时,我需要清除搜索结果并加载正常数据。当我在 searchBar
.
我的代码
@IBAction func switchTableviewAction(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
print(“one”)
self.searchResultClear()
currentTableView = sender.selectedSegmentIndex
self.tableView.reloadData()
case 1:
print(“two”)
self.searchResultClear()
currentTableView = sender.selectedSegmentIndex
self.tableView.reloadData()
default:
break;
}
}
// MARK: Search Result Clear working but not clearing result
func searchResultClear() {
//self.searchBar.text = ""
//self.searchBar.showsCancelButton = false
//self.filteredLanguages.removeAll()
//self.tableView.reloadData()
}
除了清除搜索栏,您还需要从数据源中删除筛选。数据源是指您在 table 视图中显示的对象数组。您必须将过滤功能与过滤文本一起使用。如果要清除搜索栏,还需要恢复原始 JSON 数据(未过滤的数据),然后调用 reloadData
当段控件选择改变时,您只需要用空文本调用searchBar textDidChange
方法
@IBAction func switchTableviewAction(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
self.searchBar(self.searchBar, textDidChange: "")
case 1:
self.searchBar(self.searchBar, textDidChange: "")
default:
break;
}
}