rápido: configuration de la image del button en la barra de navigation

Estoy tratando de configurar la image del button de retroceso en la barra de navigation en mi controller, aquí está mi código en viewDidLoad ():

var backImg: UIImage? = UIImage(named: "back_btn.png") println(backImg) if var back_img = backImg { println("GET IT") println(back_img) println(UIControlState.Normal) println(UIBarMetrics.Default) self.navigationController.navigationBar.backItem.backBarButtonItem.setBackButtonBackgroundImage(back_img, forState: UIControlState.Normal, barMetrics: UIBarMetrics.Default) } 

Traté de ponerlos para ver Will Load, pero obteniendo el mismo error

Consola con post de error:

 <UIImage: 0x7ff37bd85750> GET IT <UIImage: 0x7ff37bd85750> VSC14UIControlState (has 1 child) (Enum Value) fatal error: unexpectedly found nil while unwrapping an Optional value 

No sé qué parte salió mal. Parece que el back_img no es nulo, pero tengo un error que dice que es nulo

¡Gracias!

Si desea cambiar el button Atrás en todos los controlleres, puede agregar esto al delegado de la aplicación en didFinishLaunchingWithOptions

  let backImg: UIImage = UIImage(named: "back_button")! UIBarButtonItem.appearance().setBackButtonBackgroundImage(backImg, forState: .Normal, barMetrics: .Default) 

Lo he descubierto buscando en el código de ejemplo. 1) Cree un elemento de button de barra en el guión gráfico. 2) Vincula ese button al controller usando IBOutlet 3) Agrega image al button

  var backImg: UIImage = UIImage(named: "back_btn") backBtn.setBackgroundImage(backImg, forState: .Normal, barMetrics: .Default) 

PS: la image debe agregarse a la carpeta Images.xcassets, ver el código de muestra, UICatalog , para get más detalles.

En Swift 3.0, coloque el código siguiente en el método appdelegate didFinishLaunchingWithOptions , funcionará perfectamente

 let backImage = UIImage(named: "BackNavigation")?.withRenderingMode(.alwaysOriginal) UINavigationBar.appearance().backIndicatorImage = backImage UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -80.0), for: .default) 

La última línea eliminará el título del Navigation Back Button de Navigation Back Button si no desea eliminar el título y luego simplemente eliminarlo

// Aquí está la solución perfecta Para configurar el button Atrás con Imagen y acción en la barra de navigation pnetworkingeterminada

Primero agregue UIBarButton en la barra de navigation

introduzca la descripción de la imagen aquí

Luego vaya a la propiedad en el inspector de files en el guión gráfico y añada espacio para ocultar el text del título del button

Establecer image en la image del button Ui Bar

introduzca la descripción de la imagen aquí

/ Escribir en el método de acción de clic /

Para permitir que el slider se active (volver al controller anterior), escriba dos líneas de código en el método ViewDidLoad

introduzca la descripción de la imagen aquí

Y obtendrás el Botón Atrás perfecto con Deslizar para volver a la animation.

introduzca la descripción de la imagen aquí

// Nota: – Para deshabilitar el título anterior del controller de vista anterior, agregue un espacio en el text del título en el button Atrás en el inspector de files del guión gráfico

  self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "back-icon") self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "back-icon") 

forma alternativa: click el controller de navigation en el guión gráfico (no en el controller de navigation en el propio UIViewController). Luego, en la sección de attributes en el RHS, verá la image posterior y la máscara posterior. Vuelva a configurar la image y ya está.