2009-07-12 20 views
6

Ciao ho un ABPeoplePickerNavigationController, sulla creazione è impostata la sua barra di navigazione nascosta.IPHONE: ABPeoplePickerNavigationController barra di navigazione nascosta

peoplePickerController.navigationBar.hidden = YES; 

Questo funziona perfettamente, è che quando l'utente tocca la casella di ricerca per la ricerca di una persona, mentre il ritorno di dalla ricerca, il navigationBar è ri-visualizzato l'unico problema ,. Come posso ricevere una notifica di questo e rendere la barra di navigazione nascosta di nuovo?

Penso anche che si tratta di un bug di Apple, dal momento che su casi regolari quando la ricerca è sfruttato, barra di navigazione è nascosta per fare più spazio, e più tardi visualizzata, ma che non tiene conto del fatto che il bar potrebbe essere stato nascosto nel il primo posto.

Qualsiasi trucco è il benvenuto.

risposta

22

Il metodo più sicuro e semplice è tracciare quando la tastiera si nasconde/mostra.

- (void)keyboardWillHide:(NSNotification *)notification 
{ 
    peoplePickerController.navigationBar.hidden = YES; 
} 

- (void)hideNavbarAndKeepHidden 
{   
    peoplePickerController.navigationBar.hidden = YES; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 
} 

- (void)dealloc 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [super dealloc]; 
} 
+2

Signore, hai appena vinto te stesso 100 punti reputazionali, grazie mille :). – daniel

+1

Sei il benvenuto. E come l'altro commentatore ha menzionato, è davvero un bug e dovrebbe essere archiviato con Apple (includere un semplice progetto di test per i migliori risultati) – rpetrich

3

Se ritieni che questo sia un bug, devi inviarlo a http://bugreporter.apple.com.

Anche a me sembra un errore, ma mi piacerebbe ricontrollare con la documentazione per essere sicuro. Se non menziona nulla, ti suggerisco di segnalare l'errore.

Modifica: D'altra parte, penserei che impostare la barra di navigazione qui per essere nascosta sia una cattiva idea. C'è una ragione particolare per voler nasconderla?

+1

Ho già un'altra barra di navigazione che fa quello che fa. Questo perché non ho potuto modificare quello fornito con il controller, è davvero fastidioso non poter modificare l'uso di ABPeoplePickerNavigationController. – daniel

Problemi correlati