2017-10-01 2 views
1

J'ai essayé d'employer le grand titre de barre de navigation et en ajoutant la barre de recherche au contrôleur de navigation. La barre de recherche est affichée sous le titre Navigation. Il devrait être caché jusqu'à ce que je balaye vers le bas. Je comprends que le comportement par défaut est caché sauf si je mets "navigationItem.hidesSearchBarWhenScrolling = false". Même si j'ajoute "navigationItem.hidesSearchBarWhenScrolling = true", cela ne fonctionne pas.SearchBar dans NavigationBar IOS 11

J'ai créé une nouvelle application pour tester cette fonction. Il a ViewController et le contrôleur de navigation intégré. Ci-dessous est mon code:

class ViewController: UIViewController { 

    let searchController = UISearchController(searchResultsController: nil) 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     navigationController?.navigationBar.prefersLargeTitles = true 
     navigationItem.searchController = searchController 
     // navigationItem.hidesSearchBarWhenScrolling = true 

    } 
} 
+0

Désolé, et quel est le problème? – Sander

+0

La barre de recherche doit être masquée. Il affiche uniquement la barre de recherche lorsque je balaye vers le bas. – GFONG

+0

Le problème est la barre d'outils au-dessus de TableView dans Storyboard. Lorsque vous déplacez la barre d'outils sous TableView, le grand titre et la barre de recherche cachée fonctionnent comme prévu. – GFONG

Répondre

0

J'ai rencontré une situation similaire. Je l'ai résolu comme ceci:

1- Retirez tout sur SearchController

2- Ajouter UISearchBar contrôle dans votre table

enter image description here

3- Connectez ce contrôle à une variable SearchBar IBOutlet et mis déléguer

searchBar.delegate = self 

4- Utilisez uniquement UISearchBarDelegate (supprimer UISearchResultsUpdating) et mettre en œuvre textDidChange méthode

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { 
    filter... 
    reload table... 
} 

cette table de barre de recherche d'en-tête fonctionne avec iOS et 11 versions plus anciennes