color bar ios swift uinavigationcontroller uinavigationbar

ios - color - navigation bar swift 4



Botón trasero personalizado con imagen (2)

Lo que me gustaría hacer es modificar la altura del botón Atrás. Sin embargo, según tengo entendido, la única opción para modificar es el ancho. Entonces, pensé que crearía un botón de retroceso personalizado con mi propia imagen más pequeña. Ahora lo he hecho usando el método viewDidLoad con el siguiente código:

//Setup navigation bar navigationController?.navigationItem.backBarButtonItem = UIBarButtonItem(image:UIImage(named:"back_arrow.png"), style:UIBarButtonItemStyle.Plain, target:nil, action:nil) navigationController?.navigationItem.backBarButtonItem!.title = ""

Sin embargo, el botón Atrás sigue siendo azul, grande, y tiene el título ''Atrás''. ¿Cómo puedo hacer que este código funcione correctamente? El depurador dice que se está ejecutando, pero no está cambiando nada.


Para el color, debe establecer el color del tinte en navBar, también puede establecer navigationItem.backBarButtonItem en nil y usar leftbarButtonItem con la imagen del botón personalizado.


Voy a mostrarte cómo hacer esto en toda la aplicación, no solo en una página.

Para cambiar la imagen predeterminada del botón Atrás, ponga lo siguiente en el delegado de su aplicación didFinishLaunchingWithOptions: :

Rápido:

let backArrowImage = UIImage(named: "customImage") let renderedImage = backArrowImage?.imageWithRenderingMode(.AlwaysOriginal) UINavigationBar.appearance().backIndicatorImage = renderedImage UINavigationBar.appearance().backIndicatorTransitionMaskImage = renderedImage

Obj-c: "

UIImage *backArrowImage = [UIImage imageNamed:@"customImage"]; UIImage *renderedImage = [backArrowImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [UINavigationBar appearance].backIndicatorImage = renderedImage; [UINavigationBar appearance].backIndicatorTransitionMaskImage = renderedImage;

Para eliminar el texto "Atrás" del botón, agregue esta categoría a su archivo AppDelegate.m (o su propia categoría) :

Todavía no estoy seguro de cómo hacer esto en Swift, así que aquí está la versión de Obj-c:

@implementation UINavigationItem (LuxeCustomization) /** Removes text from all default back buttons so only the arrow or custom image shows up */ -(UIBarButtonItem *)backBarButtonItem { return [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil]; } @end