El button Atrás no aparece en UIViewController presionado.

Tengo un UITableViewController. Cuando hago clic en una celda, quiero presionar una nueva vista. Esto funciona bien, pero la nueva vista no tiene un button de retroceso. ¿Por qué es esto?

TableViewCode:

if([[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"]) { UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; ProfileViewController* profileViewController = [[ProfileViewController alloc] initWithNibName:@"ProfileViewController" bundle:nil]; profileViewController.message = [NSDictionary dictionaryWithObjectsAndKeys:cell.textLabel.text, @"user_login", @"default", @"message_source", nil]; switch(indexPath.row) { case kUsernameRow: [self.navigationController pushViewController:profileViewController animated:YES]; [profileViewController release]; break; case kAboutRow: break; case kTOSRow: break; } } 

Si su controller de vista de tabla se crea desde una plumilla, su título pnetworkingeterminado es @"" (aviso: no es nil , sino una cadena vacía).

El button Atrás tiene un error en el que no se muestra si el título del controller anterior en la stack de navigation es una cadena vacía, por lo tanto, dentro de su controller de vista de tabla, debe establecer el título en nil o alguna cadena en código o alguna cadena en la Interfaz Constructor (no puede configurarlo a nil allí afaik).

De la documentation de Apple:

El elemento del button de barra en el lado izquierdo de la barra de navigation permite la navigation hacia el controller de vista anterior en la stack de navigation. El controller de navigation actualiza el lado izquierdo de la barra de navigation de la siguiente manera:

Si el nuevo controller de vista de nivel superior tiene un elemento de button de barra izquierda personalizado, ese elemento se muestra. Para especificar un elemento de button de barra izquierda personalizado, establezca la propiedad leftBarButtonItem del elemento de navigation del controller de vista.

Si el controller de vista de nivel superior no tiene un elemento de button de barra izquierda personalizado, pero el elemento de navigation del controller de vista anterior tiene un elemento válido en su propiedad backBarButtonItem, la barra de navigation muestra ese elemento.

Si un elemento de button de barra personalizado no está especificado por ninguno de los controlleres de vista, se utiliza un button de retroceso pnetworkingeterminado y su título se establece en el valor de la propiedad de título del controller de vista anterior, es decir, el controller de vista de un nivel hacia abajo la stack. (Si solo hay un controller de vista en la stack de navigation, no se muestra ningún button de retroceso).

Compruebe si su controller de navigation tiene habilitada la barra de navigation. Haga clic en la barra de navigation debajo del controller de navigation en IB y compruebe si "oculto" no está marcado. Si está marcado, la barra de navigation no se mostrará y, por lo tanto, el button de retroceso también sería invisible.