Cómo agregar un botón a UINavigationBar mediante programación?¿Cómo agregar un botón a UINavigationBar?
Respuesta
Código de muestra para establecer el rightbutton
en un NavigationBar
.
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone target:nil action:nil];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Title"];
item.rightBarButtonItem = rightButton;
item.hidesBackButton = YES;
[bar pushNavigationItem:item animated:NO];
Pero normalmente tendría una NavigationController
, lo que le permite escribir:
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.rightBarButtonItem = rightButton;
Las respuestas anteriores son buenas, pero me gustaría dar cuerpo a cabo con algunos consejos más:
Si desea modificar el título del botón Atrás (la flecha-y que mira a la izquierda de la barra de navegación) DEBE hacerlo en el controlador de vista ANTERIOR, no en el que se mostrará. Es como decir "oye, si alguna vez presionas otro controlador de vista encima de este, llama al botón Atrás" (Atrás) (o lo que sea) en lugar del predeterminado ".
Si desea ocultar el botón Atrás durante un estado especial, como cuando se muestra un UIPickerView, utilice self.navigationItem.hidesBackButton = YES;
y recuerde configurarlo cuando abandone el estado especial.
Si desea mostrar uno de los botones simbólicas especiales, utilice el formulario initWithBarButtonSystemItem:target:action
con un valor como UIBarButtonSystemItemAdd
Recuerde, el significado de ese símbolo depende de usted, pero tenga cuidado de las Directrices de interfaz humana. Usar UIBarButtonSystemItemAdd para significar eliminar un elemento probablemente hará que su aplicación sea rechazada.
Añadiendo un botón personalizado a la barra de navegación (con imagen para buttonItem y especificando el método de acción (void) openView {} and).
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 32, 32);
[button setImage:[UIImage imageNamed:@"settings_b.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(openView) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barButton=[[UIBarButtonItem alloc] init];
[barButton setCustomView:button];
self.navigationItem.rightBarButtonItem=barButton;
[button release];
[barButton release];
El siguiente ejemplo mostrará un botón con el título "Contacto" en la barra de navegación a la derecha. Su acción llama a un método llamado "contacto" del viewcontroller. Sin esta línea, el botón derecho no es visible.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Contact"
style:UIBarButtonItemStylePlain target:self action:@selector(contact:)];;
Por qué no usar lo siguiente: (de Draw custom Back button on iPhone Navigation Bar)
// Add left
UINavigationItem *previousItem = [[UINavigationItem alloc] initWithTitle:@"Back title"];
UINavigationItem *currentItem = [[UINavigationItem alloc] initWithTitle:@"Main Title"];
[self.navigationController.navigationBar setItems:[NSArray arrayWithObjects:previousItem, currentItem, nil] animated:YES];
// set the delegate to self
[self.navigationController.navigationBar setDelegate:self];
En Swift 2, que haría:
let rightButton: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: nil, action: nil)
self.navigationItem.rightBarButtonItem = rightButton
rápida 3
let cancelBarButton = UIBarButtonItem(title: "Cancel", style: .done, target: self, action: #selector(cancelPressed(_:)))
cancelBarButton.setTitleTextAttributes([NSFontAttributeName : UIFont.cancelBarButtonFont(),
NSForegroundColorAttributeName : UIColor.white], for: .normal)
self.navigationItem.leftBarButtonItem = cancelBarButton
func cancelPressed(_ sender: UIBarButtonItem) {
self.dismiss(animated: true, completion: nil)
}
- 1. Agregar botón izquierdo a UINavigationBar (iPhone)
- 2. Cómo agregar UINavigationBar en un UIViewController?
- 3. ¿Cómo puedo agregar múltiples UIBarButtonItem a un UINavigationBar?
- 4. UIBulton como botón UINavigationbar
- 5. Agregar un botón a MediaController
- 6. Cómo animar un cambio de botón en UINavigationBar?
- 7. El botón de navegación hacia atrás no se muestra, cómo agregar el botón Atrás a UINavigationItem
- 8. Agregue otro botón al lado del botón "Atrás" a la izquierda de un UINavigationBar
- 9. Botón Agregar a UITableViewCell
- 10. Agregar un botón a WGD DataGrid
- 11. Agregar un botón Actualizar a jQuery Datatable
- 12. Cómo cambiar un UIBarButtonItem en un UINavigationBar
- 13. Cómo agregar un botón a un marco compacto DataGrid?
- 14. Agregar un botón a Winforms DataGridView
- 15. Agregar botón a un diseño programáticamente
- 16. No se puede agregar UIBarButtonItem a UINavigationBar independiente
- 17. cómo crear el botón de información en uinavigationbar en iphone
- 18. Cómo cambiar el texto del botón de retroceso de uinavigationbar
- 19. Agregar botón positivo a Dialog
- 20. ¿Cómo agregar margen a un botón en tiempo de ejecución?
- 21. Cómo agregar un nuevo botón a Eclipse IDE
- 22. ¿Cómo agregar un botón a una hoja de UIActionSheet existente?
- 23. Cómo agregar un botón Eliminar a la forma generada django.forms?
- 24. cómo agregar una imagen personalizada a un botón (dojo 1.7)
- 25. Cómo agregar una clase css a un botón z3c.form
- 26. Cómo agregar un botón a cada fila de una lista?
- 27. botón Agregar Divulgación a MKPointAnnotation
- 28. ExtJS: botón Agregar a htmleditor
- 29. Cómo agregar un estado de botón personalizado
- 30. ¿Cómo agregar un botón en Android?
recibo una advertencia sobre el estilo: parámetro -> Advertencia: cuestión semántica: la conversión implícita del tipo de enumeración 'UIBarButtonSystemItem' a diferente tipo de enumeración 'UIBarButtonItemStyle' – pojo
Esto debería ser initWithBarButtonSystemItem: UIBarButtonSystemItemDone para evitar la advertencia. – JordanC
En el ejemplo, no entiendo de dónde viene la "barra". ¿Cuál es la propiedad de barra superior predeterminada para un UINavigationItem? – aneuryzm