1

J'ai un UISearchController qui possède son propre contrôleur de résultats personnalisé, plutôt que de filtrer le contenu dans la vue immédiate. Le UISearchBar apparaît correctement dans la barre de navigation, mais lorsque je commence à taper des caractères dans le champ de recherche, mon contrôleur personnalisé apparaît et remplit tout l'écran, masquant la barre de navigation et la fenêtre dans laquelle je tape ma requête. .UISearchController ResultsController apparaît sur la barre de navigation

Cela a l'habitude de travailler, mais j'ai récemment changé mon storyboard pour avoir le UINavigationController comme point d'entrée, conduisant à un UITabBarController, qui avait alors ses contrôleurs à onglets.

Le UITabBarController a maintenant toute la logique pour les recherches, de sorte qu'il peut acheminer les actions prises sur les résultats de recherche vers l'onglet approprié via un protocole que j'ai implémenté. Ci-dessous est mon storyboard, notez que le contrôleur de résultat de recherche personnalisée est l'élément assis sous le UITabBarController, et l'élément non attaché dans le coin supérieur droit, est utilisé via une bibliothèque et est attaché au contrôleur de l'onglet supérieur en interne.

Je commence à me demander si cette configuration spécifique fonctionne? Puis-je avoir le UINavigationController devant le UITabBarController?

Je voulais avoir une barre de recherche persistante en haut avec tout le code de recherche partagé en un seul endroit (UITabBarController) plutôt que de mettre un UINavigationController devant chaque onglet?

Si cela fonctionne, y a-t-il des raisons pour lesquelles le contrôleur de résultats de recherche personnalisé couvre maintenant tout l'écran au lieu de passer sous la barre de navigation?

enter image description here

Répondre

0

Transforme le problème était que je devais appeler

definesPresentationContext = true 

Dans le contrôleur de vue qui était déjà en cours d'affichage (onglet 1)

Lorsque je me suis déplacé le code de recherche vers le UITabBarController, j'ai bougé avec ça.