iOS v10 или ниже: как программно добавить UISearchController внизу панели навигации - PullRequest
0 голосов
/ 06 ноября 2018

Минимальная версия iOS моего приложения - 10.3. Я могу добавить панель поиска внизу панели навигации для iOS 11. Но я хочу то же самое для более низкой версии iOS 11, и она должна быть программной. Пожалуйста помоги. Спасибо

fileprivate func _setupNavigationBar() {
    let searchController = UISearchController(searchResultsController: nil)
    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search Here"
    if #available(iOS 11.0, *) {
        navigationItem.searchController = searchController
    } else {
        // TODO: ????????????????
    }
} 

1 Ответ

0 голосов
/ 06 ноября 2018
class ViewController: UIViewController, UISearchControllerDelegate {

var controladorDeBusca: UISearchController!

var resultsTableViewController: ResultsTableViewController?

override func viewDidLoad() {
    super.viewDidLoad()

    resultsTableViewController = storyboard!.instantiateViewController(withIdentifier: "resultsTableViewController") as? ResultsTableViewController

    setUpSearchAtNaviagtion()
}

func setUpSearchAtNaviagtion() {

    controladorDeBusca = UISearchController(searchResultsController: resultsTableViewController)
    controladorDeBusca.delegate = self
    controladorDeBusca.searchResultsUpdater = resultsTableViewController
    controladorDeBusca.dimsBackgroundDuringPresentation = true
    definesPresentationContext = true

    controladorDeBusca.loadViewIfNeeded()

    //Configura a barra do Controlador de busca
    controladorDeBusca.searchBar.delegate = resultsTableViewController
    controladorDeBusca.hidesNavigationBarDuringPresentation = false
    controladorDeBusca.searchBar.placeholder = "Search place"
    controladorDeBusca.searchBar.sizeToFit()
    controladorDeBusca.searchBar.barTintColor = navigationController?.navigationBar.barTintColor
    controladorDeBusca.searchBar.tintColor = self.view.tintColor

    //Adiciona a barra do Controlador de Busca a barra do navegador
    navigationItem.titleView = controladorDeBusca.searchBar
}
}

попробуйте это ..

...