2012-10-11 64 views
8

Estoy tratando de obtener un botón de retroceso sin un título pero no puedo hacerlo funcionar. Estoy realmente nuevo en Objective-C ...setBackButtonBackgroundImage sin título IOS5

UIImage *backButtonImage = [[UIImage imageNamed:@"back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 30, 50)]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage 
                forState:UIControlStateNormal 
               barMetrics:UIBarMetricsDefault]; 

Con ese código que tengo a mi botón de retroceso, sino también el título de la página anterior.

Encontré algunos ejemplos de trabajo usando la clase UIViewController pero en mi caso el código está en el archivo appDelegate.m.

¿Alguna idea de cómo puedo hacer que funcione?

+0

Para que quede claro, simplemente estás tratando de hacer un botón personalizado que se parece a la parte posterior botón sin título? – TheJer

Respuesta

4

Por lo que puedo decir, está configurando el proxy de apariencia correctamente. El problema aquí es establecer un nuevo título para su botón Atrás.

Para hacerlo, cree un botón personalizado con su comportamiento y utilícelo como su nuevo botón Atrás. Establecer este antes de empujar o pop dicho controlador de vista, como en init

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"" 
                   style:UIBarButtonItemStyleBordered 
                   target:nil 
                   action:nil]; 

[self.navigationItem setBackBarButtonItem: newBackButton]; 
+0

@ user1736571 Si mi respuesta fue adecuada para sus necesidades, ¿puede aceptarla?Gracias. – WDUK

0
UIImage *image1 = [UIImage imageNamed:@"image.png"]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:image1 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

Sobre el uso conjunto de códigos imagen Bacground en el botón Atrás para.

+1

Esto no soluciona el hecho de que el botón no debería tener título. – arclight

-4

Apenas añada esta línea después de que el código que ya ha escrito:

[[UIBarButtonItem appearance] setTitle:@""]; 

esperar que funcione.

+0

Esto bloquea la aplicación ... Respuestas serias solo por favor ... – arclight

+0

"Espero que funcione" también si presento una respuesta. – Morkrom

0

según entiendo, usted está preguntando cómo cambiar el título del botón de retroceso.

aquí es cómo lo hago siempre

[email protected]"My Title"; 

Creo que se puede establecer como un vacío al no dar ningún título

[email protected]""; 

asegúrese de llamar a esta función antes de empujar el nuevo ver.

0

no lo he probado, pero creo que debería funcionar ... Pon esto en tu viewdidLoad, espero que sea lo que estás buscando.

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" 
style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem = backBarButtonItem; 
[backBarButtonItem release]; 
9

Un truco muy fácil que me he adaptado que utiliza el iOS 5 proxy de apariencia es la siguiente (no hace falta decir, el beneficio del proxy es el cambio global a todas las barras de navegación):

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0) 
                forBarMetrics:UIBarMetricsDefault]; 

Este método está disponible en iOS 5 SDK, por lo que no te preocupes.


EDITAR

Con el fin de evitar la imagen de estiramiento, utilice la siguiente:

UIImage* image = [UIImage imageNamed:@"back"]; 
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)]; 
+0

Todavía estira la imagen del botón. – TMilligan

+0

@TMilligan Ver mi respuesta actualizada ... – Mazyod

+0

¡Solución bien jugada, gracias! – ZaBlanc