Ответ 1
Согласно Apple:
UISearchDisplayController
устарел в iOS 8. (Обратите внимание, чтоUISearchDisplayDelegate
также устарел.) Чтобы управлять представлением строки поиска и отображать результаты поиска в iOS 8 и более поздних версиях, вместо этого используйтеUISearchController
.Класс
UISearchController
определяет интерфейс, который управляет представлением строки поиска совместно с контентом контрольных данных результатов поиска. Контроллер результатов поиска, объектUIViewController
, указанный свойством searchResultsController, управляет результатами поиска.
Теперь вы можете использовать UISearchController
для отображения строки поиска на панели навигации следующим образом:
class ViewController: UIViewController, UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {
var searchController : UISearchController!
override func viewDidLoad() {
super.viewDidLoad()
self.searchController = UISearchController(searchResultsController: nil)
self.searchController.searchResultsUpdater = self
self.searchController.delegate = self
self.searchController.searchBar.delegate = self
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = true
self.navigationItem.titleView = searchController.searchBar
self.definesPresentationContext = true
}
func updateSearchResults(for searchController: UISearchController) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Но вы должны подумать, что вам нужно установить UINavigationController
, как в этой раскадровке:
Вы можете сделать это очень просто, просто выберите свой ViewController
и посмотрите следующие шаги:
И затем вы должны увидеть на своем устройстве, когда вы нажимаете в строке поиска следующую картинку:
Я надеюсь, что это поможет вам