2011-10-21 12 views
9

He creado una IU simple en IB, esta consiste en un UINavigationBar y un UIBarButtonItem que arrastré y solté en el lado derecho.¿Cómo puedo ocultar un UIBarButtonItem?

Estoy tratando de ocultar este botón algunas veces, pero estoy teniendo algunos problemas.

Hasta ahora he intentado usar:

self.NavigationItem.rightBarButton = nil; 

... que no funcionaba para mí. También he intentado crear y IBOutlet y vincularlo al botón, sin embargo, también tengo problemas con esto. Creo que debería ser bastante simple y tal vez estoy complicando demasiado, pero en este punto estoy bastante perplejo.

Por favor alguien me puede ayudar?

+0

Asegúrese de que su salida de NavigationItem esté configurada. – logancautrell

Respuesta

25

UINavigationItem no tiene una propiedad de rightBarButton. Trate rightBarButtonItem lugar (o [self.navigationItem setRightBarButtonItem:nil animated:NO];):

self.navigationController.navigationItem.rightBarButtonItem = nil; 
// Or 
self.navigationItem.rightBarButtonItem = nil; 
// Or 
[self.navigationItem setRightBarButtonItem:nil animated:NO]; 
0

También puede agregar un UIButton como vista personalizada de UIBarButtonItem. A continuación, establezca la propiedad oculta en el customView (UIButton)

0

En lugar de eliminar el elemento del botón de barra y destruir el botón y su secuencia de guiones adjunta, puede configurarlo para borrar el texto cuando está deshabilitado.

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]} 
                 forState:UIControlStateDisabled]; 

A continuación, cuando cada vez que quiere el artículo botón de la barra oculta, puede simplemente hacer:

self.navigationItem.rightBarButton.enabled = NO; 

Es cojos no hay propiedad oculta pero esto ofrece el mismo resultado.

0

En realidad, sólo puede crear una referencia a la IBOutlet UIBarButtonItem deseado y cuando sea necesario simplemente hacer de la siguiente manera:

[self.yourOutletRerence setImage: nil]; 
0

La solución más simple: Sólo cambia el identificador del BarButtonItem la costumbre.

Cuestiones relacionadas