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

标签 ios swift xcode uitableview uisearchbar

我的场景,我将 JSON 数据加载到 tableview 中,这里我使用 search 为单个 tableview 维护两个段 Controller 按钮-栏。单击第一个分段按钮进行搜索,我可以很好地获得搜索结果,如果我单击第二个分段按钮,也会显示相同的搜索结果。因此,当我单击第 1 至第 2 段时,我需要清除搜索结果并加载正常数据。当我单击 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()
    }

最佳答案

除了清除搜索栏之外,您还需要删除数据源的过滤。通过数据源,我的意思是您在 TableView 中显示的对象数组。您必须将过滤函数与过滤文本一起使用。如果要清空搜索栏,还需要恢复原来的JSON数据(未过滤的),然后调用reloadData

关于ios - 如何使用 Swift 清除 SearchBar 结果并在 tableview 中显示完整数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56165220/

相关文章:

ios - 如何快速将多个 View 连接到单个选项卡栏项目?

带有 UIView 子类的 iOS Storyboard

ios - 单击联系人按钮而不是设备的默认 View 时,在自定义 TableView Controller 中显示来自 iOS 设备的所有联系人

swift - 不可变类型只有可变成员

iphone - 手机的当前 IP 地址,无论是通过 WiFi 还是 3G 连接

swift - 返回 View Controller Swift 4 时 AVFoundation 摄像机崩溃

ios - NSInvalidArgumentException',原因 : 'Application tried to present a nil modal view controller on target

ios - 启用 use_frameworks 后安装 cocoapods 后无法构建 FBParseUtilsV4

iphone - NSTimer 导致崩溃

ios - 如何添加多个 ImageView 并且每个 ImageView 都可以做图像选择器?