当前位置:  开发笔记 > 编程语言 > 正文

updateSearchResults()没有被调用

如何解决《updateSearchResults()没有被调用》经验,为你挑选了2个好方法。

我已经在SO上阅读了类似的问题和解决方案.但似乎没有一个能解决我的问题.我正在使用自定义搜索控制器和自定义搜索栏,并且没有调用func updateSearchResults(对于searchController:UISearchController).

    var customSearchController: CustomSearchViewController!

CustomSearchViewController:在ViewDidLoad()中

customSearchController = CustomSearchViewController(searchResultsController: ***nil***, searchBarFrame: CGRect(x: 0.0, y: 0.0, width: searchTableView.frame.size.width, height: 44.0), searchBarFont: UIFont(name: "HelveticaNeue", size: 16.0)!, searchBarTextColor: UIColor.purple, searchBarTintColor: UIColor.white)

customSearchController.searchResultsUpdater  = self
customSearchController.definesPresentationContext = true
customSearchController.customSearchBar.placeholder = "What are you looking for?"
customSearchController.customSearchBar.backgroundColor = UIColor.white
customSearchController.customSearchBar.sizeToFit()
customSearchController.customSearchBar.resignFirstResponder()
customSearchController.customSearchBar.showsCancelButton = true
customSearchController.customSearchBar.delegate = self

没有被召唤::(

func updateSearchResults(for searchController: UISearchController) {
    filtered.removeAll()
    filtered = searchArray.filter({ (text) -> Bool in
        let tmp: NSString = text as NSString
        let range = tmp.range(of: customSearchController.customSearchBar.text!, options: NSString.CompareOptions.caseInsensitive)
        return range.location != NSNotFound
    })
    self.searchTableView.reloadData()
}

Molly.. 10

经过几个小时的努力,我能够通过使用:func searchBar(_ searchBar:UISearchBar,textDidChange searchText:String) - UISearchBarDelegate委托方法来解决它.

而不是updateSearchResults() - UISearchResultsUpdating委托方法

希望它可以帮助别人:)



1> Molly..:

经过几个小时的努力,我能够通过使用:func searchBar(_ searchBar:UISearchBar,textDidChange searchText:String) - UISearchBarDelegate委托方法来解决它.

而不是updateSearchResults() - UISearchResultsUpdating委托方法

希望它可以帮助别人:)



2> ruwan800..:

我必须UISearchController在类范围内声明实例。看到这个答案。/sf/ask/17360801/

以前我在viewDidLoad方法中声明了它

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有