2010-07-20 5 views
1

J'ai une vue de table avec une barre de recherche au-dessus, et quand la barre de recherche est pressée je veux que la vue de table devienne inactive. J'ai donc cette méthode:Impossible de rendre la vue de table inactive lorsque la barre de recherche est utilisée. iPhone

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{ 
    self.tableView.userInteractionEnabled = NO; 
} 

avec la même classe étant le UISearchBarDelegate. Pour une raison quelconque, il ne désactive pas la vue de la table. Des pensées? Faites-moi savoir s'il y a d'autres éléments de code nécessaires pour vous aider. Merci.

+0

avez-vous NSLog() pour voir si elle est même appelé? – mvds

+0

ouais je l'ai fait, il s'appelait. pour une raison quelconque, il ne le désactive pas – marty

Répondre

0

Vous ne savez pas pourquoi userInteractionEnabled ne rend pas votre UITableView inactif, mais je peux suggérer une autre approche.

J'ai récemment déplacé un projet au-dessus de l'ajout manuel d'un UISearchBar comme sous-vue de mon UITableView à l'aide d'un UISearchDisplayController. Je peux définitivement recommander de le faire de cette façon. Le SearchDisplayController s'anime dans une vue alpha blended derrière la barre de recherche qui empêche l'interaction avec la vue de table sous-jacente, ce qui éviterait le problème que vous rencontrez.

Mise à jour:

Cela pourrait être quelque chose à voir avec la façon dont vous ajoutez votre UISearchDisplayController. Votre hiérarchie de vues ressemble-t-elle à ceci?

alt text

+0

J'utilise un UISearchDisplayController, cela n'empêche toujours pas l'interaction de l'utilisateur pour moi. Pas certain de pourquoi. – marty

+0

@marty Ok, c'est bizarre. Vous devriez obtenir une vue semi-transparente qui apparaît sur votre tableview lorsque vous appelez UISearchDisplayController setActive. Est-ce que vous chargez UISearchDisplayController en code ou à partir de XIB? – RedBlueThing

Questions connexes