7

Quiero añadir muchos UIBarButtonItem 's a una UINavigationbar, no sólo a derecha e izquierda botones:¿Cómo puedo agregar múltiples UIBarButtonItem a un UINavigationBar?

logoButton = [[UIBarButtonItem alloc] initWithTitle:@"A Button" style:UIBarButtonItemStyleBordered target:self action:@selector(logoButtonAClicked:)]; 

logoButton2 = [[UIBarButtonItem alloc] initWithTitle:@"B Button" style:UIBarButtonItemStyleBordered target:self action:@selector(logoButtonBClicked:)]; 

logoButto3 = [[UIBarButtonItem alloc] initWithTitle:@"C Button" style:UIBarButtonItemStyleBordered target:self action:@selector(logoButtonCClicked:)]; 

self.navigationController.navigationBarHidden = NO; 

self.title = @"Title"; 

NSArray* items = [[NSArray alloc] initWithObjects:logoButtonA, logoButtonB, logoButtonC, nil]; 
self.navigationController.navigationBar.items = items; 

consigo un SIGBRT en self.navigationController.navigationBar.items = items;

¿Cómo puedo agregar varios UIBarButtonItem s a una UINavigationBar?

+0

posible duplicado de [UIBarButtonItems múltiples en UINavigationBar] (http://stackoverflow.com/questions/5100840/multiple-uibarbuttonitems-in-uinavigationbar) –

Respuesta

16

Es necesario añadir UIBarButtonItem instancia a una UINavigationItem, no a un UINavigationBar. Así que usted puede hacer esto como:

NSArray *buttonArray = [NSArray arrayWithObjects:logoButton, logoButton2, logoButton3, nil]; 
self.navigationItem.leftBarButtonItems = buttonArray; 

Si desea que los botones de la derecha, utilice rightBarButtonItems.

+0

¿Hay una manera de agregar botones de la barra izquierda sin hacer desaparecer el botón de retroceso? – NHDaly

4

Debe utilizar

self.navigationItem.leftBarButtonItems = items; 
-1

use addSubView en la barra de navegación.

+0

No es una gran idea ... esos botones no se ven ni se comportan como las instancias estándar 'UIBarButtonItem' y, además,' UIBarButtonItem' no es una subclase de 'UIView', por lo que no puede llamar a [navigationBar addSubview: logoButton ] '. –

+0

-1: de 'UINavigationBar' docs:' Cuando utiliza una barra de navegación como un objeto independiente, usted es responsable de proporcionar sus contenidos. A diferencia de otros tipos de vistas, no agrega subvistas a una barra de navegación directamente. En su lugar, utiliza un elemento de navegación (una instancia de la clase UINavigationItem) para especificar qué botones o vistas personalizadas desea mostrar. –

Cuestiones relacionadas