ios swift: retraso al cambiar la fuente del título de la barra de navigation entre diferentes VC

Hay algún retraso al cambiar las fonts de título de la barra de navigation entre los VC, cualquier ayuda apreciada.

En mi mainVC, establezco la fuente del título de la barra de navigation en viewDidLoad como:

self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Billabong", size: 27)!, NSForegroundColorAttributeName: UIColor.whiteColor()] 

Y, para volver a la fuente normal en los otros VC siguientes, cambio la fuente a la normal en la vista principal de VC. Desaparecerá como:

 self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Medium", size: 17)!, NSForegroundColorAttributeName: UIColor.whiteColor()] 

Hasta aquí todo está bien, y el nuevo VC muestra la fuente original muy bien, pero al volver al mainVC el cambio de fuente tiene cierto retraso. La forma en que lo hago es usando la vista WillDisappear del nuevo VC que se muestra, sin embargo, cuando regresa al mainVC, muestra la mitad del título con la nueva fuente seguida por … y después de un breve retardo muestra el rest del título (por ejemplo, "CoolTi …" y luego "CoolTitle").

He intentado usar viewWillAppear en mainVC y ocurre lo mismo, también probé viewDidAppear en mainVC y el retraso en el cambio de fuente es aún peor. No estoy seguro de cómo cambiar a otra fuente sin el retraso, ¿alguna idea? Gracias

[SOLUCIONADO] Gracias @warrenm: usando navigationItem.titleView para el título de mainVC en su lugar y sin retraso al cambiar de fuente entre el código de VC:

 let coolTitle = UILabel() coolTitle.attributedText = NSAttributedString(string: "coolTitle", attributes: [NSFontAttributeName: UIFont(name: "Billabong", size: 27)!, NSForegroundColorAttributeName: UIColor.whiteColor()]) coolTitle.sizeToFit() navigationItem.titleView = coolTitle 

Esto se siente como un error UIKit por el siguiente motivo: si el título del controller de vista comprimido es más ancho que el título del controller de vista principal, parece que funciona. Solo cuando el título del VC secundario es más pequeño, el título del VC principal se trunca durante la transición.

Hay muchas soluciones posibles para esto, pero recomiendo establecer explícitamente la propiedad titleView del elemento de navigation de cada VC en una UILabel configurada UILabel con una cadena atribuida. En este caso, dejaría vacía la propiedad del title de los elementos de navigation. Es posible que desee configurar el backBarButtonItem de cada elemento de navigation con un título apropiado (ya que de lo contrario, sus botones de retroceso tendrán el título genérico "Atrás").