8

Tengo un navigationController que tiene una barra de navegación. Realmente me gustaría tener 3 UIBarButtonItems, uno a la izquierda, uno en el medio y uno a la derecha. Puedo agregar los de izquierda y derecha, pero ¿cómo podría agregar uno en el medio, ya que cuando uso un navigationController, no puedo agregar una matriz de elementos a la propiedad de elementos de navBar?Añadir UIBarButtonItem a navigationItem.titleView?

¿Debo de alguna manera agregar un UIButton, con el estilo de un UIBarButtonItem en la ubicación titleView?

Respuesta

4

tomado de apple api, básicamente puedes crear una UIView personalizada que tenga un UIButton y usar esto como tu titleView (ten en cuenta que la nota sobre leftBarButtonItem hace que titleView se ignore y no se muestre): (editar nota: esta es una propiedad de UINavigationItem)

titleView Una vista personalizada se muestra en el centro de la barra de navegación cuando este elemento es el elemento superior.

@property (no atómica, retener) UIView * titleview Discusión Si este valor de la propiedad es nulo, el título del elemento de navegación se visualiza en el centro de la barra de navegación cuando este producto es el elemento superior. Si establece esta propiedad en un título personalizado, se muestra en lugar del título. Esta propiedad se ignora si leftBarButtonItem no es nulo.

Las vistas personalizadas pueden contener botones. Use el método buttonWithType: en la clase UIButton para agregar botones a su vista personalizada en el estilo de la barra de navegación. Las vistas de título personalizadas se centran en la barra de navegación y se pueden cambiar de tamaño para que quepan.

+1

La nota en la documentación que 'leftBarButtonItem' hace que el' titleView' sea ignorado es interesante. En mis pruebas en iOS 4.3 e iOS 5.1, encontré que esto es * falso *. Agregué un botón como el ítem izquierdo y agregué un control segmentado como título y ambos me gustaron mucho. –

+1

@ AdrianSchönig, en relación con su comentario: http://stackoverflow.com/q/9690409/280789 – mon4goos