40

En mi aplicación, deseo agregar imágenes (logotipo) en la barra de navegación. Estoy trabajando en XCode 4.2 y iOS 5.Cómo agregar imágenes en UINavigationBar en la aplicación para iPhone

UINavigationBar, UIToolBar ha cambiado en iOS 5. Así IOS 4.2 UINavigationBar código no funcionará en iOS 5.

quiero para perfeccionar la imagen en pantalla UINavigationBar en las versiones 4.2 y 5.

Quiero mostrar la imagen en UINavigationBar como en la captura de pantalla siguiente.

Navigation bar image

Por favor ayude en este respecto y si hay algún código de ejemplo significa que es muy útil para mí.

Gracias !!!

Respuesta

76

Una forma de hacerlo es usar UINavigationItem.titleView y UINavigationItem.rightBarButtonItem. De esta manera:

viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]]; 
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];  
viewController.navigationItem.rightBarButtonItem = item;  

Aquí estoy usando como UIImageView vista personalizada, pero puede ser UIButton imagen personalizada.

+0

¿Este trabajo tanto para iOS4 y 5? ¿y es el logo de 'clingle' que está tratando de agregar y no la imagen de fondo de UINavigationbar? – Illep

+0

Lo hace en Simulator al menos. Y no veo ninguna razón por la que no debería. No entendí tu segunda pregunta. – barley

+0

gracias. pero noté que el objeto del artículo no se publicó en su ejemplo. –

32

Otra forma sin usar un viewController

// Create your image 
UIImage *image = [UIImage imageNamed: @"logo.png"]; 
UIImageView *imageview = [[UIImageView alloc] initWithImage: image]; 

// set the image view to the title view 
self.navigationItem.titleView = imageview; 
3

versión Swift: Se puede crear una extensión del protocolo para el uso de la función en sus controladores de vista

protocol Customizable { 
    var navigationItem: UINavigationItem { get } 
} 

extension Customizable { 
    func setNavBarLogo() { 

     let logo = UIImage(named: "logo") 
     let logoImageView = UIImageView(image: logo) 

     self.navigationItem.titleView = logoImageView 
    } 
} 
Cuestiones relacionadas