Ocultar el derechoBarButtonItem de un controller de navigation

¿Alguien sabe cómo ocultar un rightBarButtonItem de un UINavigationController ? En mi aplicación, tengo un button de edición como rightBarButtonItem de un UINavigationController . Quiero ocultar esto UIBarButton` cuando se realizan algunas operaciones.

Para ocultar el button derecho: self.navigationItem.rightBarButtonItem = nil;

Ahora, para mostrarlo:

  1. Si configura el button derecho en su controller de vista asignándolo a self.editButtonItem, simplemente vuelva a asignarlo para mostrarlo:

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

  2. Si configura el button derecho en su controller de vista asignando e iniciando un UIBarButtonItem, simplemente mantenga una reference al UIBarButtonItem en su controller de vista y asigne nuevamente cuando necesite mostrarlo.

Si necesita ocultar / mostrar el button en function de alguna condición, intente esto:

 if (condition) { self.navigationItem.rightBarButtonItem.title = @""; self.navigationItem.rightBarButtonItem.enabled = NO; } else { self.navigationItem.rightBarButtonItem.title = @"my button title"; self.navigationItem.rightBarButtonItem.enabled = YES; } 

De esta forma, no tiene que save una reference al button en una propiedad o preocuparse por cablear la acción en un button nuevo.

Tratar

 self.navigationItem.rightBarButtonItem = nil; 

Cuando lo desees, tendrás que activar un button, es decir

 UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(searchBar:)]; self.navigationItem.rightBarButtonItem = rightBarButton; [rightBarButton release];