iOS11
遵循协议:UISearchResultsUpdating
searchController = UISearchController(searchResultsController: nil)
self.navigationItem.searchController = searchController
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
// MARK: - UISearchResultsUpdating
func updateSearchResults(for searchController: UISearchController) {
if let searchText = searchController.searchBar.text {
filterContent(for: searchText)
tableView.reloadData()
}
}
func filterContent(for searchText:String){
searchResults = restaurants.filter({ (restaurantM) -> Bool in
if let name = restaurantM.name {
//localizedCaseInsensitiveContains 方法检查名称是否包含在搜索文字内,并且不分大小写,若搜索文字被找到,这个方法回传true,否则传false
let isMatch = name.localizedCaseInsensitiveContains(searchText)
return isMatch
}
return false
})
}