No se puede acceder al button de retroceso del controller de navigation.

En una vista detallada de mi aplicación, el button de retroceso del controller de navigation parece estar tomando señales por su color de alguna manifestación impía. A través de una ruta a la vista de detalle, es azul; a través de otro, es negro. En cualquier caso, el button Atrás no parece existir dentro del object self.navigationController.

Entonces, aquí hay una vista de detalle:

vista detallada de mi aplicación

Y aquí hay una instantánea del controller de navigation en este punto:

introduzca la descripción de la imagen aquí

Estoy bastante seguro de saber cómo cambiar el color de este elemento en particular, pero no sé dónde encontrarlo. ¿Ideas?

VenueTableViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSDictionary *show; if( [self.listType isEqualToString:@"showsByRegion"] ) { NSString *venueIndex = [[self.allShows allKeys] objectAtIndex:[indexPath indexAtPosition:0]]; int index = [indexPath indexAtPosition:1]; show = [[self.allShows objectForKey:venueIndex] objectAtIndex:index]; } else { int index = [indexPath indexAtPosition:(indexPath.length - 1)]; show = [self.showsAtVenue objectAtIndex:index]; } UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"InfoViewController"]; detailViewController.showInfo = show; // Pass the selected object to the new view controller. [self.navigationController pushViewController:detailViewController animated:YES]; } 

InfoViewController.m

 - (void)viewDidLoad { [super viewDidLoad]; self.tableView = [[self.view subviews] objectAtIndex:1]; [self createInfoViewDictionary]; [self addTopImage]; [self setFrameForTableView]; [self bindLabelsToProperties]; [self.navigationController.navigationBar setTitleTextAttributes:[SHColors shanetworkingInstance].navBarText]; } 

    Si obtienes diferentes colors es porque estás llegando desde diferentes viewcontrollers y esos viewcontrollers tienen tintColor diferente.

    Luego, debe configurar el color que desea usar:

     - (void)viewDidLoad { .... self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; .... } 

    Si está pensando en tener el mismo color para toda la barra de navigation, puede usar el proxy UIAppearance para configurarlos en AppDelegate (editado: como dijo Jordan Montel)

    El button de retroceso en una barra de navigation pertenece al controller de vista al que le enviaría el button de retroceso. es decir

    A --->B --->C

    El button Atrás de C pertenece a los elementos de navigation B y el button Atrás de B pertenece a los elementos de navigation A

    Esto significa que debe verificar lo que hace en el controller de vista anterior.

    Puede configurar el tintColor de tintColor de su barra de navigation en el método didFinishLaunchingWithOptions en su AppDelegate si desea cambiar el color de título completo:

     [[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 

    El método didFinishLaunchingWithOptions :

     - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; return YES; } 

    Establezca el tintColor de tintColor de la tintColor de navigation del controller de navigation en el color que desee que sea el button de retroceso.

     self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; 

    En iOS 6 esto establecerá que toda la barra sea blanca.

    Si configura el color de tinte de alguna vista de supervisión de la barra de navigation, el button de retroceso lo henetworkingará si no está configurado.

    La propiedad tintColor de las vistas establece los diferentes colors del button Atrás y se henetworkinga de las supervisiones si no se establece ninguna. Puede configurar el color de tinte para toda la aplicación haciendo esto en delegado de la aplicación:

    window.tintColor = [UIColor purpleColor];

    Para su situación, debe retroceder y ver de dónde provienen los colors individuales en cada ruta de navigation y establecer la propiedad tintColor de la barra de navigation.

    Al igual que @micantox, dijo que el button Atrás viene del controller de vista anterior. Por lo tanto, si desea acceder al button Atrás visible para el controller actual, debe acceder a la presentación del controller de vista, por lo que la mejor manera de getlo es:

     self.presentingViewController.navigationItem.backBarButtonItem