Tenía un controlador de vista principal con un título muy largo. Esto dio como resultado que el texto del botón de retroceso sangrara en el título del controlador de vista secundario.
Después de probar un montón de soluciones diferentes, esto es lo que terminé haciendo (ampliando el enfoque @ john.k.doe):
Usando Xcode 7.2, Swift 2
- En el guión gráfico, añadir una
Navigation Itema la Parent escena Vista Controlador (no el niño VC)

- En el
Attributes Inspectorde su nuevo Navigation Item, escriba un spacepersonaje en el Back Buttoncampo. Más sobre esto más tarde.


- En el Parent controlador de vista, añadir el siguiente código:
retazo:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.destinationViewController {
case is ChildViewController:
navigationItem.backBarButtonItem?.title = ""
default:
navigationItem.backBarButtonItem?.title = "Full Parent Title"
}
}
Explicación:
El botón de retroceso pertenece al controlador de vista principal. El Navigation Itemle da un control al botón de retroceso, para que pueda establecer el título en código o en el Guión gráfico.
Nota:
Si deja el Navigation Item Back Buttontexto como la cadena vacía predeterminada, el título del botón Atrás se convertirá en "Atrás".
Otros enfoques funcionan, ¿por qué usar este ?:
Si bien es posible anular el título del botón de retroceso en el controlador de vista infantil, fue un desafío manejarlo hasta que ya apareció brevemente en la pantalla.
Algunos de los enfoques construyen un nuevo botón de retroceso y anulan el existente. Estoy seguro de que funciona, y probablemente sea necesario en algunos casos de uso. Pero prefiero aprovechar las API existentes cuando sea posible.
Cambiar el titlecontrolador de vista principal es la solución más rápida para algunas situaciones. Sin embargo, esto cambia el título principal, por lo que debe administrar el estado. Las cosas también se complican Tab Bar Controllerporque los cambios en el título causan efectos secundarios con los Tab Bar Itemtítulos.