• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#074 – Come inserire una UINavigationBar personalizzata nelle nostre applicazioni iPhone

By Andrea Busi | on 4 Ottobre 2010 | 12 Comments
Senza categoria

In moltissime applicazioni che si trovano in AppStore potete notare che la barra di navigazione (UINavigationBar per noi programmatori) non è la classica blu che Apple mette a disposizione, ma è personalizzata con colori o loghi caratteristici dell’applicazione.

In questo tutorial vedremo come utilizzare una classe apposita, “CustonNavigationBar”, che ci permetterà di inserire una immagine personale come navigation bar.

1. Inseriamo la classe nel nostro progetto

Questo tutorial lo eseguiremo partendo da un progetto già fatto. Per il nostro scopo utilizziamo il semplice lettore di feed RSS che abbiamo creato utilizzando questo nostro tutorial. Scaricate il file di progetto ed apritelo in XCode.

La prima cosa da fare è inserire nel progetto la classe CustomNavigationBar, che potete scaricare a questo indirizzo.

Scompattate l’archivio e inserite i due file della classe nel nostro progetto.

Se avete eseguito tutto correttamente avrete i seguenti file nel vostro progetto:

2. Inseriamo un’immagine adeguata

Ora dobbiamo inserire un’immagine che possa funzionare senza problemi nella Navigation Bar. Per fare ciò utilizziamo un file di dimensione 320×44, che si adatterà alla perfezione. Ecco quello che utilizzeremo noi:

Inserite anche questa immagine nel vostro progetto, come fatto in precedenza per la classe.

3. Assegniamo alla Navigation Bar la classe CustomNavigationBar

Dobbiamo far si che la UINavigationBar della nostra applicazione sia gestita dalla classe CustomNavigationBar. Apriamo il file “MainWindow.xib”, si aprirà Interface Builder.

Dal “Pannello dei Documenti” espandiamo l’elemento Navigation Controller e selezioniamo la Navigation Bar:

Spostiamoci, poi, nell’Identity Inspector e nel campo Classes impostiamo “CustomNavigationBar”:

Spostiamoci, infine, nell’oggetto Navigation Controller. Prendiamo il suo “delegate” e colleghiamolo con l’oggetto Navigation Controller:

Abbiamo compleato questa parte. Salviamo tutto e chiudiamo pure Interface Builder.

4. Esaminiamo la classe CustomNavigationBar

Prima di esaminare la classe che ci interessa, andate nel file “RootViewController.m” e nel metodo “viewDidLoad” cambiate la seguente istruzione:

self.title = @"back";

questo perchè il titolo non sarà visualizzato nella navigation bar, ma sarà invece utilizzato quando l’utente seleziona una cella (per il bottone che permette di tornare alla vista precedente).

Spostiamoci nel file “CustomNavigationBar.m”, qui troviamo il comportamento della nostra classe. Nel metodo “drawRect” trovate le seguenti istruzioni:

-(void)drawRect:(CGRect)rect{
	UIImage *image = [[UIImage imageNamed:@"navBar.png"] retain];
	[image drawInRect:rect];
	[image release];
}

Come vedete la prima è quella che imposta l’immagine da visualizzare. Se avete inserito un’immagine con un nome diverso da “navBar.png” qui è il posto corretto per modificarlo. Una soluzione particolare sarebbe anche quella di scaricare l’immagine da un sito web, che vi permetterebbe di avere una barra modificabile da remoto.

C’è poi un metodo che nel nostro tutorial è praticamente inutilizzato, ma potrebbe essere invece utile per i vostri scopi. Esso è il seguente:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{

	//NSString *title = [viewController title];
	UILabel *myTitleView = [[UILabel alloc] init];
	[myTitleView setFont:[UIFont boldSystemFontOfSize:18]];
	[myTitleView setTextColor:[UIColor yellowColor]];
	//myTitleView.text = title;

	myTitleView.backgroundColor = [UIColor clearColor];
	[myTitleView sizeToFit];
	viewController.navigationItem.titleView = myTitleView;
	[myTitleView release];

	viewController.navigationController.navigationBar.tintColor = [UIColor colorWithRed:140.0/255.0 green:145.0/255.0 blue:147.0/255.0 alpha:0.8];
}

Qui, volendo, potete impostare il colore, il font e la dimensione del testo che viene visualizzato nella Navigation Bar (il “title” che solitamente impostiamo via codice). Se avete inserito una immagine che contiene solo lo sfondo e non un logo, potete abilitare quelle istruzioni e modificare l’aspetto del testo a vostro piacere.

Noi abbiamo solo decommentato due istruzioni, in modo che non venga visualizzato nessun testo nella navigation bar.

L’ultima istruzione, infine, imposta il colore che viene utilizzato nei bottoni presenti sulla Navigation Bar, come quello per tornare alla schermata precedente quando si entra in una riga:

Abbiamo concluso! Avviate il progetto e godetevi la vostra barra di navigazione personalizzata!

Se avete problemi con il tutorial, questo è il nostro file di progetto.

Share this story:
  • tweet

Tags: andrea busicustom navigation barcustom uinavigationpersonalizzare navigation barTutorial PraticiUINavigationBar

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • “Tutorial pratici per iOS SDK” si aggiorna alla versione 2.1

    10 Maggio 2012 - 1 Comment
  • Tutorial pratici per iOS SDK: disponibile la versione 2.0 aggiornata a iOS 5 e XCode 4.2

    16 Novembre 2011 - 6 Comments
  • T#096 – Facciamoci lasciare una recensione in App Store dalla nostra applicazione con Appirater

    15 Giugno 2011 - 40 Comments

Author Description

23 anni, è studente di Ingegneria Informatica presso l’Università di Bergamo (laurea Magistrale). Appassionato d’informatica sin da bambino, conosce molto bene il C++, Java e l'ObjectiveC, con cui ormai programma con successo da qualche anno. Ha già scritto un ebook “Tutorial pratici per iPhone SDK”, che ha avuto un ottimo successo, e gestisce da quasi due anni BubiDevs, un piccolo blog che ha dato l’ispirazione anche a devAPP.

12 Responses to “T#074 – Come inserire una UINavigationBar personalizzata nelle nostre applicazioni iPhone”

  1. 4 Ottobre 2010

    Tweets that mention Personalizzare le Navigation Bar nelle nostre applicazion iPhone e iPad | devAPP -- Topsy.com

    […] This post was mentioned on Twitter by Rynox, iPadWorld.it and devAPP, Bubi Devs. Bubi Devs said: T#074 – Come inserire una UINavigationBar personalizzata nelle nostre applicazioni iPhone: In moltissime applicazi… http://bit.ly/drYWtz […]

  2. 5 Ottobre 2010

    Francesco

    Molto utile Grazie.
    Continuate così 😛

  3. 31 Dicembre 2010

    Fede81

    Ciao, funziona tutto, ho solo un piccolo problema:

    quando seleziono una cella, mi compare il tasto “back” e fin qui ok. Quando però lo premo, oltre a tornare alla pagina precedente, mi mostra la scritta “back” nel centro della navigationBar sovrapponendosi al logo.

    (solo se torno indietro, se seleziono nuova cella torna a posto, e al back di nuovo il problema)

    Avete idea di cosa possa essere?

    Grazie e continuate così 🙂

  4. 11 Gennaio 2011

    Stopped

    Ciao! Bel sito, molto completo. Siccome io vorrei iniziare da zero con un progetto da zero vorrei sapere come fare la UINavigationBar personalizzata da zero.
    Utilizzando l’ultimo SDK

    Grazie anticipate

  5. 27 Gennaio 2011

    iCiccio

    Ho seguito il tutorial e tutto bene, ho implementato la Barra personalizzata in alcune viste associate ad una TabBar, il problema che noto che pur avendo stessa dimensione nella prima Vista la barra risulta più “bassa” mentre nella seconda risulta essere normale a 44pixel come mai da cosa potrà dipendere?

  6. 26 Maggio 2011

    Giovanni

    MI piacerebbe tanto poter cambiare il colore del font dei titoli, sapete darmi qualke dritta???

  7. 27 Maggio 2011

    Andrea Busi


    Giovanni:

    MI piacerebbe tanto poter cambiare il colore del font dei titoli, sapete darmi qualke dritta???

    devi abilitare le righe 3 e 7, che nel tutorial erano commentate. Con quelle puoi avere delle scritte con colori e font personalizzati 😉

  8. 5 Giugno 2011

    tommaso

    come posso implementarla senza avere un rootViewController?

  9. 17 Giugno 2011

    Andrea Busi


    tommaso:

    come posso implementarla senza avere un rootViewController?

    Puoi crearti un UINavigationController da codice, oppure inserire direttamente un componente grafico tramite IB

  10. 12 Agosto 2011

    Andrea

    Ciao, come posso creare bottoni trasparenti che riprendano lo sfondo della nav? Grazie.

  11. 6 Marzo 2012

    Luca

    Ho una domanda su questo argomento… con iOS 5, se non uso storyboard, in che modo posso aggiungere questa navigationbar personalizzata???????

  12. 30 Settembre 2012

    tommaso

    Ciao…come posso inserire immagini diverse nella navBar per il master e per il detail?!…è possibile intercettare quale View è presente nel NavigationController per implementare un if nella customNavBar?!

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO