El título de la barra de navigation y los botones de navigation no aparecen en iOS 11

Antes de iOS 11, los botones y título de UINavigationBar se muestran correctamente.

Ayer descargué Xcode 9 con iOS 11 y, después de crear y ejecutar sin hacer cambios, los botones de navigation y el título ya no se muestran. Muestra el UINavigationBar con el color correcto que estoy configurando pero nada más.

Probé diferentes simuladores y también actualicé un iPhone 7 a iOS 11 beta 5 y el resultado es el mismo. No se muestra nada.

¿Alguien ha enfrentado el mismo problema? He intentado cambiar diferentes partes del código y el storyboard, pero nada afecta …

EDITAR con capturas de pantalla: http://imgur.com/a/Hy46c

¡Gracias por adelantado!

Para Xcode 9, parece que ya no es suficiente simplemente establecer el marco de una vista personalizada que se está inyectando en el título de navigationViewView. El tamaño de contenido intrínseco de su titleView ahora debe ser reemplazado y configurado también.

Aquí está el código, ajuste el ancho y la altura para satisfacer sus necesidades:

 class NavigationBarTitleView: UIView { override var intrinsicContentSize: CGSize { return CGSize(width: bounds.width - 100, height: 50) } ... } 

Primero, ¿ha limpiado su proyecto, eliminado los datos derivados y reiniciado xcode? Entonces, ¿tal vez tiene algún comportamiento personalizado en su UINavigationBar , para mostrar elementos, por ejemplo?

Puede encontrar cambios en la versión de xcode aquí: https://developer.apple.com/documentation/uikit/uinavigationbar?changes=latest_major .

Tratar de usar:

  UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] 

o sin configuration de proxy de apariencia directamente a la barra de navigation actual … Resuelve mi problema, ¿debería Apple cambiar el título de text para borrarlo como pnetworkingeterminado en iOS11 …?

También usa esto si quieres la misma apariencia que iOS 10:

  if #available(iOS 11, *) { nav.navigationBar.prefersLargeTitles = false } 

Tuve el mismo problema y para mí fue causado por la subclass UITabBarController

¿Configuró "window, rootViewController = …" en su código? Intenta eliminarlo puede solucionar tu problema

No se mostró el mismo problema con el button de navigation. Lo solucioné estableciendo el renderingMode a .alwaysOriginal . (No utilicé templates)

Código Swift 3:

 var img =R.image.smt()?.withRenderingMode(.alwaysOriginal) 

Tuve el mismo problema y ninguno de los anteriores se solucionó. Aunque, @Justin Vallely me llevó a solucionarlo.

Todo lo que hice fue establecer un width en el titleView y todo funcionó bien.

EDITAR:

Cada UIViewController tiene una propiedad navigationItem , y cada navigationItem tiene un titleView opcional.

Para reference: https://developer.apple.com/documentation/uikit/uinavigationitem/1624935-titleview

En mi caso, estaba usando un titleView personalizado y creo que esa es la causa del problema, ya que Apple cambió la API para admitir el nuevo layout de la barra de navigation.