14

Cambio mi botón de retroceso cuando pulso un nuevo controlador de visualización en mi navegador. Pero no se ve bien y se estira. Además, ¿cómo puedo eliminar el título "Noticias" en mi botón Atrás? aquí está mi código. ver la imagenapariencia de UIBarButtonItem y setBackButtonBackgroundImage

screen shoot

y el código es

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"back_button.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

que quiero lograr algo como esto http://i228.photobucket.com/albums/ee262/romano2717/photo4.png

+0

¿Alguna vez resolvió esto? Estoy pasando por el mismo problema en este momento ... – Vlad

Respuesta

0

A menos que me falta algo, tiene que crear el código en UIBarButtonItem para eliminar o cambiar el título, por lo que solo se aplicaría a los controladores de vista en los que se inserta el código:

UIBarButtonItem *myBackButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back_button.png"] style:UIBarButtonItemStyleBordered target:nil action:nil]; 
self.navigationItem.backBarButtonItem = myBackButton; 
[myBackButton release]; 

La razón por la cual el código que envió las obras de esa manera es porque sólo establece los antecedentes y la documentación que lo hace el estado:

Para obtener buenos resultados, BackgroundImage debe ser una imagen estirable.

0

Puede crear un botón personalizado y agregarlo como un botón de barra para eliminar el estiramiento. o puede obtener gráficos del tamaño del botón de retroceso.

para eliminar el título del botón, tiene que establecer self.title = ""; en el método viewWillDisappear y establecer el título nuevamente cuando esté en el método viewWillAppear.

Espero que esto resuelva su problema.

+0

Cuando agrego este código, el botón Atrás se va después de empujar el nuevo controlador de vista a la navegación. – Diffy

-3

El siguiente código eliminará el título del botón Atrás.

UIBarButtonItem *theBackButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(yourAction)]; 
    [[UIBarButtonItem appearance] setBackBarButtonItem:theBackButton];  
    [theBackButton release]; 
+4

Esto falla con '- [_ UIBarItemAppearance setBackBarButtonItem:]: selector no reconocido enviado a la instancia 0x208448d0' en 6.0.1 – Cyrille

+1

Mismo problema ... Se bloquea .... – TheTiger

18

Utilice el siguiente código para colocar la imagen en su lugar.

int imageSize = 20; //REPLACE WITH YOUR IMAGE WIDTH 

UIImage *barBackBtnImg = [[UIImage imageNamed:@"NavBackButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, imageSize, 0, 0)]; 

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:barBackBtnImg 
                forState:UIControlStateNormal 
               barMetrics:UIBarMetricsDefault]; 

Puede utilizar resizableImageWithCapInsets para especificar los píxeles no debe ser estirado. Si coloca el ancho de su imagen allí, no estirará su imagen.

No tiene que ponerlo en el archivo .m por cierto. (Puede usar el archivo appDelegate.m) simplemente asegúrese de que se invoque antes de que se dibuje la barra de navegación.

+2

pero el título del botón de retroceso está creando un problema ... cómo ocultarse esta ??? – TheTiger

+0

alguna idea de cómo quitar el título ?? – ArdenDev

+0

Seguro: [[self navigationItem] setTitle: nil]; – Tieme

0

Use youparentViewController.title = @ ""; Tuve el mismo problema con el título

Cuestiones relacionadas