2016-05-24 1 views
0

J'utilise un searchBar comme filtre pour un tableauView. J'ai lu dans plusieurs postes qui y comprisQuitter searchBar par programme dans Swift 2.x et iOS9

self.definesPresentationContext = true 

Le recours est rejeté SearchBar, mais ce n'est pas mon cas. Ce que je veux réaliser, c'est que dès qu'un utilisateur appuie sur la barre, il ferme la recherche en la fermant si certaines conditions ne sont pas remplies.

J'ai aussi essayé

searchController.active = false

sans résultat. Quelqu'un peut-il aider? Merci

+1

"Ce que je veux faire, c'est que dès qu'un utilisateur appuie sur la barre, il rejette la recherche" Non, je ne comprends pas ce que vous voulez faire. Si "certaines conditions ne sont pas remplies", pourquoi la barre de recherche est-elle présente et activée? La façon de gérer cela est d'empêcher l'utilisateur d'appuyer sur la barre de recherche de manière inappropriée en premier lieu, de ne pas surprendre l'utilisateur en rejetant soudainement quelque chose. – matt

+0

Si je ne montre pas la barre de recherche comment l'utilisateur sait qu'il peut l'activer? Je pensais que montrer un message après le robinet serait une bonne idée. Avez-vous une meilleure solution? – Nicholas

+1

"Avez-vous une meilleure solution" Je pense que je _gave_ vous une meilleure solution. Règles de base de la conception de logiciels: ne pas surprendre l'utilisateur, ne pas tromper l'utilisateur, ne pas faire un imbécile de l'utilisateur. Si l'utilisateur ne peut rien faire, ne lui donnez pas les moyens de le faire. Inversement, ne donnez pas à l'utilisateur une pièce d'interface dont le seul effet est de mettre en place une alerte disant «Vous êtes un idiot». – matt

Répondre

1

essayer:

[searchController.searchBar setHidden:YES]; 

Vous aurez probablement envie aussi de rejeter le presentingViewController.

Bien que, comme le souligne Matt, c'est une façon un peu étrange de le faire. Vous feriez mieux d'afficher une alerte. Voir si les conditions ne sont pas remplies et même ne pas afficher searchBar.

+0

réellement dans Swift 2.x est searchController.searchBar.enable = true, mais il laisse un espace vide, sinon il pourrait être agréable de le désactiver en le laissant visible, comme avoir un canal alpha – Nicholas