2009-12-02 5 views
1

Je pense, j'ai besoin d'un autre bon conseil. Jusqu'à présent, ma solution semblait bien fonctionner, mais maintenant ...EXC BAD ACCÈS lors de l'utilisation UISearchBar

OK, les faits:

  1. j'ai un UIViewController ordinaire
  2. En plus d'un UINavigationBar, derrière qu'un UISearchBar, caché initialement
  3. Au fond d'une UIToolbar
  4. Mon principal contrôleur de vue prend en charge UISearchBarDelegate

Un interrupteur sur UIToolbar permet de basculer la visibilité du UISearchBar

if (show) { 
     [searchBar setShowsCancelButton:TRUE animated:TRUE]; 
     [navigationBar setHidden:TRUE]; 
     [searchBar becomeFirstResponder]; 
    } 
    else { 
     [navigationBar setHidden:FALSE]; 
     [searchBar setShowsCancelButton:FALSE animated:TRUE]; 
    } 
    searchIsVisible = !searchIsVisible; 

Il y a une animation autour, mais je l'ai laissé tomber ce par exemple. Cela fonctionne bien, je peux entrer une chaîne de recherche et y accéder en utilisant "searchBarSearchButtonClicked:". Je suis également capable de réagir sur "searchBarCancelButtonClicked:"

Je ne l'avais pas remarqué avant ou ça arrive maintenant - j'attrape de temps en temps un EXC BAD ACCESS sans plus de préavis. Je suis assez sûr, le "[searchBar devenirFirstResponder];" la déclaration est la raison de cela, parce que je peux le provoquer en tapant dans la ligne de recherche aussi.

Malheureusement, je suis incapable de comprendre, quelle est la raison. Dois-je fournir une autre méthode de délégué, comme les deux que j'ai actuellement?

Tout pointeur est le bienvenu.

Répondre

0

Je suppose que searchBar est désalloué et vous ne le connaissez pas. Probablement parce que votre contrôleur de vue est désalloué et/ou votre hiérarchie de vue. Essayez de briser vos deallocs et de voir si, quand ils se produisent, cela a du sens.