No se puede cambiar el text y el color del text del button Atrás del browser.

Estoy intentando configurar el color del text del button trasero (a rojo) de mi barra de navigation usando el código a continuación. (NOTA: El código a continuación ya está en el controller de vista 'anterior', en este caso en el controller de vista 'Popular':

//Customize Back button UIView *backButtonView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 30, 40)]; UILabel *backButtonLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 30, 40)]; backButtonLabel.text = @"back"; backButtonLabel.textColor = [UIColor colorWithHexString:@"cf212a"]; [backButtonView addSubview:backButtonLabel]; UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithCustomView:backButtonView]; self.navigationItem.backBarButtonItem = backButton; 

Sin embargo, no estoy obteniendo el efecto que quiero. Todavía estoy recibiendo el text del color blanco pnetworkingeterminado en el button trasero. El text no se cambia a "atrás" también

introduzca la descripción de la imagen aquí

¿Cómo puedo resolver esto?

Esto se debe a que el backbuttonitem es un elemento de button de Uibar que se verá en el siguiente controller de vista que se colocará encima de su controller de vista actual y no del controller de vista actual.

Si desea configurar el button trasero de la vista actual como lo está intentando hacer en el código anterior que simplemente mueva el código al controller de vista que se muestra antes (debajo de él en la stack), de modo que al presionar la vista controller para el que desea mostrar el button de retroceso personalizado que se configuró en el controller de vista anterior. Esto se debe a que el button Atrás pertenece al controller de vista anterior que empujará su nuevo controller de vista …

Creo que solo la propiedad del title importa en el elemento del button Atrás; Está allí para permitirle tener un título largo en el medio y un título más corto en el button Atrás.

La forma más fácil de agregar un "button de retroceso" personalizado es establecer UINavigationItem.leftBarButtonItem ; tendrás que configurar su objective / acción adecuadamente.

Acabo de armar una subclass UIViewController simple que agrega un button de retroceso personalizable que le permite cambiar los colors de text. Básicamente agrega un willAppear lógica willAppear / willDisappear para animar el button de UINavigationController hace el UINavigationController mientras se usa la propiedad leftBarButtonItem .

https://github.com/typeoneerror/BBCustomBackButtonViewController

Esto funcionó para mí.

Al usar esto, puede cambiar el color de todos los botones de navigation:

[[UIBarButtonItem appearance] setTintColor:[UIColor networkingColor]];

Reemplace rojoColor con lo siguiente para ajustar el color de los botones:

 colorWithRed:0/255.0 green:144/255.0 blue:200/255.0 alpha:1.0// pick your color using this 

Asegúrese de poner esto en el controller de vista que empuja. No es el controller de vista donde desea ver este color de button de retroceso. Como explicó Robin.

La mejor manera que encontré para configurarlo globalmente o localmente es

  [[UIBarItem appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:220.0/255.0 green:104.0/255.0 blue:1.0/255.0 alpha:1.0], UITextAttributeTextColor, [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0], UITextAttributeTextShadowColor, [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset, [UIFont fontWithName:@"AmericanTypewriter" size:0.0], UITextAttributeFont, nil] forState:UIControlStateNormal]; 

El problema es que no tienes una buena forma de configurar la fuente y los colors del button a nivel global. Eso está en el iOS 5 actual. Para eso estoy usando el https://github.com/typeoneerror/BBCustomBackButtonViewController de typeoneerror mencionado aquí.

Sin embargo, hay una buena manera de establecer las properties de los colors y el text de los botones de barra de navigation a nivel global sin destruir la apariencia de otros botones y menus. Estoy usando código como:

 [[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleColor:[UIColor colorWithRed:102.0f/255.0f green:102.0f/255.0f blue:102.0f/255.0f alpha:1.0f] forState:UIControlStateNormal]; [[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleShadowColor:[UIColor colorWithWhite:1.0 alpha:0.75] forState:UIControlStateNormal]; [[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] titleLabel] setShadowOffset:CGSizeMake(1.0, 1.0)]; 

En uno de mis proyectos Lo llamo desde la - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

 self.navigationItem.backBarButtonItem.tintColor = [UIColor blackColor];