I'm I'm developing an app with UICollectionViewController. I'm implementing a search feature with UISearchController. Here is what I have done:
var searchController: UISearchController!
override func viewDidLoad() {
searchController = UISearchController(searchResultsController: nil)
searchController.delegate = self
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.searchBar.placeholder = "Search for article"
searchController.hidesNavigationBarDuringPresentation = false
self.navigationItem.titleView = searchController.searchBar
searchController.searchBar.sizeToFit()
definesPresentationContext = true
}
The problem is that how can we display list of 10 recent search string whenever user click on the UISearchBar? and detect if the user click on any previous search result (To reload collectionView to show filtered result).
You have to implement it on your own. Whenever user click on the
UISearchBara delegate is called and you can show aUITableViewattached beneath it listing 10 recent searches (if there's any).When user searches something, add it to your maintained recent searches array/queue.
If user clicks on any recent searched item i.e. on
UITableView,didSelectRowdelegate will be called, you can search that string and reorganize the recent searches array/queue.