2011-10-21 15 views
9

Ho creato un'interfaccia utente semplice in IB, che consiste in uno UINavigationBar e uno UIBarButtonItem che ho trascinato e lasciato cadere sul lato destro.Come nascondere un UIBarButtonItem?

Sto provando a impostare questo pulsante in modo che sia nascosto alcune volte ma sto riscontrando qualche problema.

Finora ho provato con:

self.NavigationItem.rightBarButton = nil; 

... che non ha funzionato per me. Ho anche provato a creare e IBOutlet e collegarlo al pulsante, ma ho anche problemi con questo. Penso che dovrebbe essere piuttosto semplice e forse mi sto complicando troppo, ma a questo punto sono abbastanza perplesso!

Per favore qualcuno può darmi una mano?

+0

Assicurarsi che la presa NavigationItem sia impostata. – logancautrell

risposta

25

UINavigationItem non ha una proprietà rightBarButton. Prova rightBarButtonItem invece (o [self.navigationItem setRightBarButtonItem:nil animated:NO];):

self.navigationController.navigationItem.rightBarButtonItem = nil; 
// Or 
self.navigationItem.rightBarButtonItem = nil; 
// Or 
[self.navigationItem setRightBarButtonItem:nil animated:NO]; 
0

È inoltre possibile aggiungere un UIButton come CustomView di UIBarButtonItem. Quindi imposta la proprietà nascosta su customView (UIButton)

0

Piuttosto che eliminare la voce del pulsante della barra e distruggere il pulsante e lo storyboard è allegato, puoi semplicemente impostarlo per cancellare il testo quando è disabilitato.

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]} 
                 forState:UIControlStateDisabled]; 

Poi, quando mai si desidera che l'oggetto pulsante della barra nascosta, si può solo fare:

self.navigationItem.rightBarButton.enabled = NO; 

E 'zoppo non c'è alcuna proprietà nascosta, ma questo offre lo stesso risultato.

0

In realtà, si può solo creare un riferimento IBOutlet al UIBarButtonItem desiderata e, se necessario solo fare come segue:

[self.yourOutletRerence setImage: nil]; 
0

La soluzione più semplice: basta cambiare l'identificatore del BarButtonItem al costume.

Problemi correlati