40

Nella mia app, voglio aggiungere un'immagine (logo) nella barra di navigazione. Sto lavorando su XCode 4.2 e iOS 5.Come aggiungere un'immagine in UINavigationBar nell'app IPhone

So UINavigationBar, UIToolBar è stato cambiato in iOS 5. Quindi iOS 4.2 UINavigationBar codice non funzionerà in iOS 5.

Voglio sostenere immagine mostra a UINavigationBar in entrambe le versioni 4.2 e 5.

Voglio essere l'immagine di visualizzazione in UINavigationBar come nello screenshot di seguito.

Navigation bar image

Si prega di aiutare in questa materia, e se non v'è alcun codice di esempio significa che la sua molto utile per me.

Grazie !!!

risposta

76

Un modo per fare ciò è utilizzare UINavigationItem.titleView e UINavigationItem.rightBarButtonItem. Come questo:

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;  

Qui sto usando UIImageView come visualizzazione personalizzata, ma può essere UIButton immagine personalizzata con.

+0

Sarà questo lavoro sia per iOS4 e 5? ed è il logo 'clingle' che stai cercando di aggiungere e non l'immagine di sfondo per UINavigationbar? – Illep

+0

Almeno su Simulator. E non vedo alcuna ragione per cui non dovrebbe. Non ho capito la tua seconda domanda. – barley

+0

grazie. ma ho notato che l'oggetto dell'oggetto non è stato rilasciato nel tuo esempio. –

32

Un altro modo senza utilizzare 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

versione Swift: È possibile creare un protocollo di estensione per utilizzare la funzione nella vista controller

protocol Customizable { 
    var navigationItem: UINavigationItem { get } 
} 

extension Customizable { 
    func setNavBarLogo() { 

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

     self.navigationItem.titleView = logoImageView 
    } 
} 
Problemi correlati