2009-07-12 12 views
6

Hola tengo un ABPeoplePickerNavigationController, en la creación se establece su navigationBar hidden.IPHONE: ABPeoplePickerNavigationController barra de navegación oculta

peoplePickerController.navigationBar.hidden = YES; 

Esto funciona perfectamente, es que cuando el usuario toca el cuadro de búsqueda a buscar a una persona, ya que el regreso de partir de la búsqueda, se abre nuevamente la que el único problema de la navigationbar ,. ¿Cómo puedo recibir notificaciones de esto y volver a ocultar la barra de navegación?

también creo que esto es un error de manzana, ya que en casos normales cuando se puntea en la búsqueda, la barra de navegación se oculta para hacer más espacio, y más tarde aparece, pero que no tiene en cuenta el hecho de que la bar podría haberse ocultado en en primer lugar.

Cualquier truco es bienvenido.

Respuesta

22

El método más seguro y simple es rastrear cuando el teclado se esconde/muestra.

- (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

Señor, usted acaba de ganar 100 puntos de reputación, muchas gracias :). – daniel

+1

Eres bienvenido. Y como mencionó el otro comentarista, de hecho es un error y debe archivarse con Apple (incluya un proyecto de prueba simple para obtener los mejores resultados) – rpetrich

3

Si cree que se trata de un error, debe enviarlo al http://bugreporter.apple.com.

Para mí también suena como un error, pero verificaría con la documentación para estar seguro. Si no menciona nada, sugiero informar el error.

Editar: Por otro lado, creo que establecer la barra de navegación aquí para que se oculte es una mala idea. ¿Hay alguna razón en particular para querer esconderlo?

+1

Tengo otra barra de navegación que ya hace lo que hace. Esto es porque no pude modificar el que viene con el controlador, es realmente molesto no poder modificar el uso de ABPeoplePickerNavigationController. – daniel

Cuestiones relacionadas