es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo mostrar el leftBarButtonItem de la misma manera que el backBarButtonItem en Objective C iOS.

Tengo un backBarButtonItem para algunas vistas de controlador. Por defecto, se muestra con una flecha hacia atrás y texto. Quiero crear un leftBarButtonItem para otro controlador de vista (que se presenta en lugar de hacer un push).

¿Cómo puedo crear un leftBarButtonItem que se vea igual que el backBarButtonItem en Objective C?

Implementación de backBarButtonItem y ViewControllers son empujados.

UIBarButtonItem* backNavigationItem = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                      style:UIBarButtonItemStylePlain
                                                                     target:self
                                                                     action:nil];
NSString* accentContrastcolorString = [NSUserDefaults.standardUserDefaults valueForKey:@"AccentcontrastColor"];
UIColor* accentContrastcolor = [self colorFromHexCode:accentContrastcolorString];
backNavigationItem.tintColor = accentContrastcolor;
viewController.navigationItem.backBarButtonItem = backNavigationItem;

enter image description here

He creado leftBarButtonItem de la siguiente manera y muestra el título “Back”, necesito una flecha hacia atrás con el mismo tamaño.

UIBarButtonItem* bacNavigationItem = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                          style:UIBarButtonItemStylePlain
                                                                         target:self
                                                                         action:@selector(backButtonTapped:)];
NSString* accentContrastcolorString = [NSUserDefaults.standardUserDefaults valueForKey:@"AccentcontrastColor"];
UIColor* accentContrastcolor = [self colorFromHexCode:accentContrastcolorString];
bacNavigationItem.tintColor = accentContrastcolor;
viewController.navigationItem.leftBarButtonItem = bacNavigationItem;

enter image description here

He seguido algunos otros enlaces pero no funciona como se esperaba, ¿alguien puede sugerir una solución?

https://stackoverflow.com/questions/7397911/how-to-make-leftbarbuttonitem-looking-like-backbarbuttonitem

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear un leftBarButtonItem que se vea igual que un backBarButtonItem en Objective C, debes establecer las propiedades de imagen y estilo del nuevo botón para que coincidan con las del botón de retroceso.

    Primero, crea un objeto UIImage utilizando la imagen de indicador de retroceso definida por el sistema:

    UIImage *backImage = [UIImage imageNamed:@"ic_back"];
    

    Luego, crea un nuevo UIBarButtonItem utilizando la imagen de retroceso y el estilo predeterminado:

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backImage
                                                                   style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(backButtonTapped:)];
    

    A continuación, establece el color tint del botón para que coincida con el del botón de retroceso:

    NSString *accentContrastcolorString = [NSUserDefaults.standardUserDefaults valueForKey:@"AccentcontrastColor"];
    UIColor *accentContrastcolor = [self colorFromHexCode:accentContrastcolorString];
    backButton.tintColor = accentContrastcolor;
    

    Finalmente, establece el nuevo botón como leftBarButtonItem para el view controller deseado:

    viewController.navigationItem.leftBarButtonItem = backButton;
    

    Esto debería crear un leftBarButtonItem que se vea igual que el backBarButtonItem, con una flecha hacia la izquierda y sin texto.

Comments are closed.