我們可以利用UISearchBar來完成查詢資料的功能
首先拉一個UISearchBar到畫面,並且讓他的delegate = self
searchBar.delegate = self
接著Xcode會要你加上UISearchBarDelegate,TableView會在搜尋框開始輸入、正在輸入、結束輸入時都reloadData,這樣資料就可以即時更新
extension MainVC: UISearchBarDelegate{
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
resumeTableView.reloadData()
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
search(searchText)
if searchText == "" {
fetchData()
resumeTableView.reloadData()
}
}
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
resumeTableView.reloadData()
}
}
搜尋資料的function,意思是如果SearchBar內的文字不是空的就進行以下的程式碼,將有包含輸入文字大小寫的資料篩選後回傳
func search(_ searchTerm: String) {
if searchTerm.isEmpty == false {
resumeList = Database.shared.fetchData().filter {
$0.name.contains(searchTerm.lowercased()) || $0.name.contains(searchTerm.uppercased())
}
}
resumeTableView.reloadData()
}
以下是還沒搜尋時的資料
而當在SearchBar輸入E時,可以看到Ben和Ellim都因為包含E字母而顯示出來,Carol則沒有顯示
如此一來搜尋功能就完成啦!FMDB的練習也在此告一段落了,明天會來介紹CloudKit,那我們就明天見啦!