如何使用Swift清除SearchBar结果并在tableview中显示完整数据?

时间:2019-05-16 09:26:27

标签: ios swift xcode uitableview uisearchbar

我的场景是,我正在将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()
    }

2 个答案:

答案 0 :(得分:2)

除了清除搜索栏外,还需要从数据源中删除筛选。所谓数据源,是指您在表视图中显示的对象数组。您必须对过滤器文本使用过滤器功能。如果要清除搜索栏,还需要还原原始JSON数据(未过滤的数据),然后调用reloadData

答案 1 :(得分:1)

更改分段控件选择后,您只需要使用空白文本调用Cannot GET /方法

searchBar textDidChange