2012-05-23 10 views
9

Nel mio AppDelegate Io uso UIAppearance per impostare il mio NavigationBar con questo codice:Come sbarazzarsi di UIAPearance quando non è necessario?

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav5.png"] forBarMetrics:UIBarMetricsDefault]; 

Ma alcune vedute della mia applicazione non ne hanno bisogno. Come posso liberarmene, quindi posso usare IB solo nelle viste interessate?

risposta

12

Non è necessario utilizzare il proxy. Basta avere l'effettiva barra di navigazione, che dovrebbe apparire diversa e impostare direttamente i colori su di essa.

[navigationBarInstance setTintColor:[UIColor blackColor]]; 
[navigationBarInstance setBackgroundImage:[UIImage imageNamed:@"nav5.png"] forBarMetrics:UIBarMetricsDefault]; 

si può anche solo impostare entrambi i valori di nil, in cui si desidera ancora una volta gli stili standard. (testato da Ben Clayton).

[navigationBarInstance setTintColor:nil]; 
[navigationBarInstance setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 
+0

L'impostazione dell'immagine di sfondo e dei colori su 'nil', infatti, riporta gli stili ai valori predefiniti. Provato. –

+1

Non funziona su istanza 'MFMailComposeViewController' (vedi https://alpha.app.net/stuffmc/post/5028278) –

+0

e così hai fatto downvote? è una domanda generale qui, non riguarda il mailcomposer .. – calimarkus

Problemi correlati