Я разрабатываю с помощью xcode 6.2 в ios8 и swift, я пытаюсь реализовать UISearchController внутри UITableViewController, который может быть обновлен после поиска, я написал простой код, чтобы проверить, работает ли он, но когда я компиляции, панель поиска есть, но когда я ввожу текст и нажмите поиск, ничего не происходит:UISearchController не обновляется
вот мой код:
import UIKit
class searchresult: UITableViewController,UISearchBarDelegate, UISearchControllerDelegate, UISearchResultsUpdating {
var result:[String] = ["a","b","c"]
override func viewDidLoad() {
super.viewDidLoad()
var searchcon = UISearchController(searchResultsController: self)
searchcon.delegate = self
searchcon.searchBar.delegate = self
searchcon.searchBar.sizeToFit()
self.tableView.tableHeaderView = searchcon.searchBar
searchcon.searchResultsUpdater = self
searchcon.searchBar.showsSearchResultsButton = true
self.definesPresentationContext = true
searchcon.dimsBackgroundDuringPresentation = false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell
cell.textLabel!.text = result[indexPath.row]
return cell
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return result.count
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func updateSearchResultsForSearchController(searchController: UISearchController) {
println("updating")
result = ["1"]
self.tableView.reloadData()
}
}
Просто попробуйте изменить '' self' к nil' в 'вар searchcon = UISearchController (searchResultsController: само)', потому что он пытается создайте новый 'searchResultsController', чтобы отобразить результаты –