Прежде всего, извините, если этот вопрос звучит слишком глупо (не стесняйтесь его пропускать).
В моем приложении мне нужно создать область поиска: в основном я должен создать панель поиска, и, когда пользователь нажимает на некоторые символы, я показываю таблицу с результатами.
В моем основном ViewController
я сделал следующее:
var resultSearchController:UISearchController? = nil
override func viewDidLoad() {
super.viewDidLoad()
// my results table is 'SearchTable' in my storyboard
let searchTable = storyboard!.instantiateViewController(withIdentifier: "SearchTable") as! SearchTable
resultSearchController = UISearchController(searchResultsController: searchTable)
resultSearchController?.searchResultsUpdater = searchTable as? UISearchResultsUpdating
resultSearchController?.hidesNavigationBarDuringPresentation = false
resultSearchController?.dimsBackgroundDuringPresentation = true
definesPresentationContext = true
Конечно, все работает нормально, если добавить следующее:
let searchBar = resultSearchController!.searchBar
searchBar.sizeToFit()
searchBar.placeholder = "Search..."
// this line embeds the search bar in the navigation bar
navigationItem.titleView = resultSearchController?.searchBar
UISearchController
создает UISearchBar
и устанавливает для него свойство searchBar
контроллера поиска.
Проблема в том, что я хочу другую вещь, а именно:
- строка поиска должна не быть встроенной в панель навигации;
- строка поиска должна не быть встроенной в само представление таблицы;
Моя панель поиска должна быть всегда видимой, зафиксированной и размещенной прямо под панелью навигации: я просто вставил UISearchBar
в свою раскадровку с ее ограничениями и подключил ее к контроллеру представления как IBOutlet
.
Но на данный момент я не знаю, как связать мою панель поиска с resultSearchController
. Как я мог сделать? Возможно ли это?