2015-11-11 15 views
5

Sto utilizzando Swift per creare un'applicazione iOS e vorrei modificare l'aspetto globale di UIBarButtonItem. Lo sto facendo in didFinishLaunchingWithOptions.Cambia aspetto UIBarButtonItem globale

la documentazione di Apple dice questo:

func setTitleTextAttributes(_ attributes: [String : AnyObject]?, forState state: UIControlState) 

per UIBarItem. Ma quando provo a farlo, si aspetta solo self: UIBarItem. Qualcun altro l'ha incontrato? È un bug in Xcode o sto facendo qualcosa di sbagliato?

+0

Questo è stato risposto molte volte prima. Controlla questo: http://stackoverflow.com/a/28347428/469614 – Vexy

risposta

5

Forse si è tentato rendersene conto con UIAppearance protocollo? Dovrebbe essere usato per la personalizzazione globale di alcune classi visive. Posso suggerire un vostro certo codice come questo:

UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.classForCoder()]).setTitleTextAttributes(["attribute" : "value"], forState: .Normal) 

spera che è evidente dal codice della strada in opere e come si può enwide esso.

6

chiamata setTitleTextAttributes sul UIBarButtonItemappearance proxy:

Swift 3:

UIBarButtonItem.appearance().setTitleTextAttributes([key : value], for: .normal) 

2.x Swift:

UIBarButtonItem.appearance().setTitleTextAttributes([key : value], forState: UIControlState.Normal)