¿por qué setBackBarButtonItem no funciona en childViewController viewDIdLoad?

Quiero personalizar el backBarButtonItem en el elemento de navigation, aquí está mi código

- (void)viewDidLoad { [super viewDidLoad]; UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; [[self navigationItem] setBackBarButtonItem:back]; } 

pero no funcionó mientras usaba leftBarButtionItem puede funcionar.

No sé, ¿alguien puede darme una respuesta?

 - (void)viewDidLoad { [self.navigationItem setHidesBackButton:YES]; UIBarButtonItem *cancelNavButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(dismissController)]; [self.navigationItem setLeftBarButtonItem:cancelNavButton]; } - (void)dismissController { [self.navigationController popViewControllerAnimated:YES]; } 

No debería tener que crear el button de retroceso usted mismo si está presionando sus controlleres de vista utilizando el UINavigationController pushViewController:animated: . Esto empujará al nuevo ViewController en la stack de NavigationControllers y le dará un button de retroceso automático con el título del ViewController anterior.

La razón por la que su button no funciona es el target: y action: parameters son nil , podría vincularlos al método popViewControllerAnimated: método popViewControllerAnimated: para lograr la misma acción que el button de retroceso pnetworkingeterminado.

 - (void)viewDidLoad { [super viewDidLoad]; UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:[self navigationController] action:@selector(popViewControllerAnimated:) ]; [[self navigationItem] setBackBarButtonItem:back]; } 
 - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.hidesBackButton = YES; UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.leftBarButtonItem = back; }