2013-06-28 15 views
9

Sto utilizzando un UINavigationBar nella mia app con UITabBar. Nella prima scheda, il titolo della barra di navigazione viene visualizzato correttamente come titolo bianco con il colore di sfondo predefinito, ma nella seconda scheda non funziona allo stesso modo. Non sto usando alcun codice per modificare il colore del titolo o la barra di navigazione tintColor.Il titolo NavigationBar è disponibile in colore nero

Prima vista:
http://img407.imageshack.us/img407/7192/4go.png

Seconda Vista: http://img824.imageshack.us/img824/4493/idtk.png

Perché è il titolo della seconda vista UINavigationBar disegnato in questo colore nero?

+0

penso che si dovrebbe impostare il colore alla navigazione bar apice nel secondo punto di vista check-out che – Jitendra

risposta

26

In genere, non è possibile modificare il colore predefinito di UINavigationBar Titolo. In caso di Se si desidera cambiare il colore di UINavigationBar Title di quanto necessario per personalizzare UINavigationBar. quindi inserisci il codice per il tuo secondo ViewController per maggiori informazioni.

EDIT:

Dopo la ricerca, ho scoperto che è possibile cambiare il colore del titolo di UINavigationBar da

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]; 

Questo codice sta lavorando in iOS5 e versioni successive.

+0

ho cercato di cambiare il colore del titolo, ma non sta funzionando. Un'altra cosa che il secondo codice di controllo della vista non sta influenzando se sto usando il nuovo viewController senza alcun codice, lo stesso problema si sta verificando ..... – Rivan

+0

@rivan se lavori su iOS 5 poi metti questo codice nel metodo ViewDidLoad L'ho provato sul mio progetto funziona per me :) – iPatel

+0

@ rivan- sta lavorando per voi o no ??? – iPatel

1

Questo codice cambia il testo di tutta la barra di navigazione, con questo codice il testo può essere personalizzato al 100%.

in AppDelegate:

//custom text navBar 
    [[UINavigationBar appearance] setTitleTextAttributes: 
    [NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:0x73/255.0 green:0x47/255.0 blue:0x41/255.0 alpha:1.0], UITextAttributeTextColor, 
    [UIColor colorWithRed:0x1D/255.0 green:0x1D/255.0 blue:0x1B/255.0 alpha:1], UITextAttributeTextShadowColor, 
    [NSValue valueWithUIOffset:UIOffsetMake(0, 1)],UITextAttributeTextShadowOffset, 
    [UIFont fontWithName:@"yourFont" size:20], UITextAttributeFont, nil]]; 
+0

quando sto usando il tuo codice sta cambiando il nome di navigazione in prima visione del controller in nero e tutta la vista che si trova in firstNavigation (dopo la visualizzazione push) è in bianco. – Rivan

7

Questo vi permetterà di modificare i colori

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys: 
             [UIColor whiteColor],UITextAttributeTextColor, 
             [UIColor blackColor],  UITextAttributeTextShadowColor, 
             [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil]; 

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes]; 
+0

non funziona nel mio caso. – Rivan

11

La maggior parte dei suggerimenti di cui sopra sono obsoleti ora, per iOS 7 uso -

NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys: 
           [UIColor whiteColor],NSForegroundColorAttributeName, 
           [UIColor whiteColor],NSBackgroundColorAttributeName,nil]; 

self.navigationController.navigationBar.titleTextAttributes = textAttributes; 
self.title = @"Title of the Page"; 

Inoltre, eseguire il checkout di NSAttributedString.h per varie proprietà di testo che potrebbero essere impostate.

+0

Questo ha funzionato alla grande per me. Stavo per postare questo per una correzione aggiornata di iO7, ho dato il voto alto! – Coughlin

4

Utilizzare questo bit di codice per iOS7 come UITextAttributeTextColor è stato deprecato.

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor orangeColor] forKey:NSForegroundColorAttributeName]; 
8

Prova questa in AppDelegate:

[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}]; 
+0

Grazie. Questa è la risposta corretta. Si desidera impostare questo aspetto come in un'app normale, in realtà si desidera che tutte le barre di navigazione abbiano lo stesso aspetto. – n13

Problemi correlati