Может быть, это невозможно, но я всегда предполагал, что вы можете просто сгенерировать экземпляр UISearchController
на любом старом контроллере вида navigationItem
и получить строку поиска.Мне кажется, что независимо от того, что я пытаюсь, я не могу заставить его работать.Это заставляет меня думать, что это поведение жестко запрограммировано, чтобы работать, только когда свойство view
контроллера представления является подклассом UIScrollView
.
Я надеюсь, что это просто красная сельдь.Если я пропустил что-то очевидное, пожалуйста, помогите!Это бесит.
Вот что я сделал:
import UIKit.UIViewController
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.hidesSearchBarWhenScrolling = false
navigationItem.searchController = {
let searchController = UISearchController()
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
searchController.obscuresBackgroundDuringPresentation = false
return searchController
}()
}
}
На экране никогда не появляется строка поиска.Это похоже на обычную старую панель навигации.