2013-09-21 5 views
5

ho creato carattere UIBarButtonItem titolo attraverso appearance delega in AppDelegate:UIBarButtonItem cambia carattere dopo essere stato premuto, specificato in apparenza delega

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                 [UIFont fontWithName:@"Segoe Print" size: 14.0], UITextAttributeFont, 
                 DEF_TITLE_COLOR,UITextAttributeTextColor, 
                 [UIColor colorWithRed:100/255 green:128/255 blue:43/255 alpha:0.4], UITextAttributeTextShadowColor, 
                 [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset, nil] 
              forState:UIControlStateNormal&UIControlStateHighlighted&UIControlStateDisabled]; 

E dopo che io sto chiamando presentViewController:: in qualche luogo del mio app. pulsante della barra è mostrato con una corretta dei caratteri e immagini di sfondo, che ho creato in questo ViewController (non attraverso apparizione):

enter image description here

Ma quando premo "Join" bottone, UIAlertView di serie non personalizzato è mostrato, e subito dopo appare sullo schermo il mio carattere barButton cambia in ... standard? E il colore sembra anche il colore della tinta. Non ho idea di quello che sto facendo male, ha provato un sacco di cose per capirlo: appare

enter image description here

Questo bug solo su iOS7.

+0

@ user2277872 Questo non aiuta. Avendo lo stesso problema. Quando sto cercando di separare gli stati con '|', come suggerito da null, il proxy non funziona affatto, anche se non cambia il font per lo stato Normale. – kokoko

risposta

1

Bene, ho capito che il proxy di apperance non funziona come mi aspettavo. Ho copiato il metodo di personalizzazione subito prima di un posto dove UIBarButtonItem è inizializzato e ha funzionato come charm.

+0

Lo stesso - aiutato. Ho collegato quell'UIBarButtonItem con lo storyboard. Così ho provato a reinserire il pulsante con [[UIBarButtonItem alloc] init] e impostarlo manualmente ad esso (piuttosto che usare quelli nello storyboard). Ha funzionato, ma strano, penso che sia un bug di Apple. – pedrouan

+0

C'è un radar per questo https://github.com/lionheart/openradar-mirror/issues/15652 – karmel

-1

Ciò può funzionare in caso di IOS 7:

In viewDidLoad metodo:

[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]];

e impostare le proprietà di carattere pure.

+0

Questa proprietà modifica solo il colore del segno "<" sui backButtons. Lo sto già utilizzando nell'inizializzazione dell'app. – kokoko

Problemi correlati