Al navegar a cualquier vista en una aplicación que tiene implementado el controlador de navegación, muestra un botón Atrás para ir al anterior ver. ¿Hay alguna manera de que pueda usar una imagen personalizada en lugar de la predeterminada?Cómo puedo mostrar una imagen personalizada en el botón de barra de navegación en lugar de los botones predeterminados que se muestran en la barra de navegación
Respuesta
Sí, puedes.
Puede controlar cómo el botón de retroceso estándar se verá cuando otro controlador de vista es empujado en la parte superior de un controlador de vista determinado por el elemento de configuración de botón de barra de la espalda de su elemento de navegación (se puede personalizar el título o utilizar una imagen):
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = btn;
[btn release];
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:yourImage style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = btn;
[btn release];
Nota: configura esto en un controlador de vista "principal" que puede tener otros controladores de vista empujados encima. La configuración se realiza en el "padre" y la apariencia del botón Atrás se cambia cuando algún controlador de vista está en la parte superior. Al presionar el botón Atrás, regresa como se esperaba.
También puede crear su propia UIBarButtonItem y configurarlo como la leftButtonItem en la barra de navegación a la actual controlador de vista:
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:yourImage style:UIBarButtonItemStyleBordered target:self action:@selector(yourMethod:)];
self.navigationItem.leftBarButtonItem = btn;
[btn release];
Nota: en este caso, la barra trasera/izquierda el elemento del botón se cambia para el controlador de vista actual (cuando está en la parte superior). Debe implementar el método yourMethod:
. Si simplemente desea que el botón retroceda, debe manejar abrir el controlador de visualización usted mismo llamando al [self.navigationController popViewControllerAnimated:YES];
.
Descubrí que ninguna de las soluciones solucionó realmente el BACK UIBarButton y también proporcionó su comportamiento oculto si el controlador de vista es root.
-(void)popViewControllerWithAnimation {
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if([self.navigationController.viewControllers objectAtIndex:0] != self)
{
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 26, 26)];
[backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
[backButton setShowsTouchWhenHighlighted:TRUE];
[backButton addTarget:self action:@selector(popViewControllerWithAnimation) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *barBackItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.hidesBackButton = TRUE;
self.navigationItem.leftBarButtonItem = barBackItem;
}
}
Funciona casi como un botón de retroceso. Con la excepción de la animación de transición (después de que se toca el botón y se quita la vista actual de la navegación a la derecha).
La manera correcta es hacer una categoría.
@interface UINavigationBar (MyNavigationBar)
-(void)drawRect:(CGRect)rect;
@end
@implementation UINavigationBar (MyNavigationBar)
-(void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"....."];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
- 1. Barra de navegación mostrar/ocultar
- 2. Cómo agregar el botón de barra en la barra de navegación sin controlador de navegación.
- 3. iOS: Posicionamiento de los botones de la barra de navegación dentro de la barra de navegación personalizada
- 4. ¿Cómo agregar una imagen personalizada en el elemento del botón de la barra de navegación?
- 5. Agregar imagen a la barra de navegación
- 6. agregando más de dos botones en la barra de navegación
- 7. ¿Cómo agregar varios botones a una barra de navegación?
- 8. UISearchBar en la barra de navegación
- 9. Asignar barra de navegación personalizada para UINavigationController
- 10. Color del botón en la barra de navegación - iPhone
- 11. Botón de retroceso personalizado en la barra de navegación
- 12. cómo mostrar una imagen en la barra de navegación de una aplicación de iPhone?
- 13. Ocultar barra de navegación en la rotación
- 14. Cómo deshabilitar el botón derecho de la barra de navegación
- 15. Agregar el botón Atrás a la barra de navegación
- 16. Ocultar el título de la barra de navegación sin quitarlo
- 17. ¿Cuál es el color predeterminado para los botones de la barra de navegación en el iPhone?
- 18. Cómo ocultar el elemento uibarbutton de una barra de navegación
- 19. Títulos que no aparecen en la barra de navegación ViewControllers
- 20. ¿Cómo cambiar el color del botón en la barra de navegación UIImagePickerController?
- 21. Cómo transformar la barra de navegación y el controlador de navegación en modo horizontal
- 22. UIBarButtonItemStyleDone no crea botones azules en la barra de navegación cuando se presiona el controlador
- 23. Adición del artículo botón de la barra en la barra de navegación
- 24. Agregar botones a la barra de navegación ios
- 25. Elemento de botón de barra en una sola barra de navegación del controlador de barra de pestañas
- 26. Deshabilitar el botón de barra de navegación Navigationitem
- 27. Cómo mostrar UIActionSheet justo debajo de la barra de estado de navegación superior en iPhone
- 28. Fondo de la barra de NAVEGACIÓN en iPhone
- 29. ¿Cómo establecer el elemento activo en la barra de navegación desplegable de la barra de acciones?
- 30. iPhone: botón "atrás" de la barra de navegación clicable = ¿NO?