Come faccio a mostrare / nascondere un UIBarButtonItem?


251

Ho creato una barra degli strumenti in IB con diversi pulsanti. Vorrei poter nascondere / mostrare uno dei pulsanti in base allo stato dei dati nella finestra principale.

UIBarButtonItem non ha una proprietà nascosta, e tutti gli esempi che ho trovato finora per nasconderli riguardano l'impostazione dei pulsanti della barra di navigazione su zero, cosa che non credo di voler fare qui perché potrebbe essere necessario mostrare nuovamente il pulsante (non per menzionarlo, se collego il mio pulsante a un IBOutlet, se lo imposto a zero non sono sicuro di come lo ripristinerei).


L'ho semplicemente disabilitato e ho aggiunto un'etichetta di accessibilità che dice che la funzione del pulsante non è disponibile.
Daniel Springer,

Risposte:


263

Salva il tuo pulsante in una presa forte (chiamiamolo myButton) e fai questo per aggiungerlo / rimuoverlo:

// Get the reference to the current toolbar buttons
NSMutableArray *toolbarButtons = [self.toolbarItems mutableCopy];

// This is how you remove the button from the toolbar and animate it
[toolbarButtons removeObject:self.myButton];
[self setToolbarItems:toolbarButtons animated:YES];

// This is how you add the button to the toolbar and animate it
if (![toolbarButtons containsObject:self.myButton]) {
    // The following line adds the object to the end of the array.  
    // If you want to add the button somewhere else, use the `insertObject:atIndex:` 
    // method instead of the `addObject` method.
    [toolbarButtons addObject:self.myButton];
    [self setToolbarItems:toolbarButtons animated:YES];
}

Poiché è memorizzato nel punto vendita, manterrai un riferimento anche quando non si trova sulla barra degli strumenti.


73
Per farlo funzionare per il mio tasto destro in un controller di navigazione ho usato self.navigationItem.rightBarButtonItems e [self.navigationItem setRightBarButtonItems <prams>] invece di toolBarItems e setToolBarItems.
MindSpiker,

@MindSpiker: Sì, la stessa tecnica funziona anche per i pulsanti su una barra di navigazione.
Lnafziger,

1
devo azzerare myButton in dealloc?
Van Du Tran,

49
O Apple potrebbe aver appena aggiunto la proprietà .hidden. -_-
GeneCode

217

So che questa risposta è in ritardo per questa domanda. Tuttavia, potrebbe essere utile se qualcun altro si trova ad affrontare una situazione simile.

In iOS 7, per nascondere un elemento del pulsante della barra, possiamo utilizzare le due tecniche seguenti: -

  • utilizzare SetTitleTextAttributes: - Funziona alla grande su elementi del pulsante della barra come "Fine", "Salva" ecc. Tuttavia, non funziona su elementi come Aggiungi, Cestino, ecc. (almeno non per me) poiché non sono testi.
  • utilizzare TintColor: - Se ho una voce del pulsante della barra denominata "deleteButton": -

Per nascondere il pulsante, ho usato il seguente codice: -

[self.deleteButton setEnabled:NO]; 
[self.deleteButton setTintColor: [UIColor clearColor]];

Per mostrare di nuovo il pulsante ho usato il seguente codice: -

[self.deleteButton setEnabled:YES];
[self.deleteButton setTintColor:nil];

[self.navigationItem.rightBarButtonItem setEnabled: NO]; [self.navigationItem.rightBarButtonItem setTintColor: [UIColor clearColor]];
Leon,

3
Per Swift: deleteButton.enabled = false; deleteButton.tintColor = UIColor.clearColor()disabilitare e nascondere e deleteButton.enabled = true; deleteButton.tintColor = nilriattivare e mostrare normalmente.
Unixmonkey,

1
Mi piace che questo approccio mi permetta di mettere la logica per visualizzare o meno UIBarButton all'interno di quella classe. Il motivo per cui funziona solo con un pulsante non è immediatamente ovvio - è perché se nascondi un pulsante in questo modo occuperà ancora spazio, quindi potresti avere uno spazio vuoto se hai più pulsanti.
Semplicamente dal

Il tuo primo approccio è stato perfetto per me. Ho impostato UIColor.clearper UIControlState.disablede posso mostrare / nascondere il pulsante con setEnabled. Naturalmente, come hai affermato, questo funziona solo per i pulsanti di testo.
fl034,

Se lo premo a lungo finché non viene visualizzato in un'immagine grande (probabilmente per accessibilità), anche con isEnabled impostato su false funziona ancora.
Daniel Springer,

67

Ecco un approccio semplice:

hide:  barbuttonItem.width = 0.01;
show:  barbuttonItem.width = 0; //(0 defaults to normal button width, which is the width of the text)

L'ho appena eseguito sul mio iPad Retina e .01 è abbastanza piccolo da non essere mostrato.


13
Di tutte le soluzioni, questa è stata rapida, sporca ed efficace. Ho anche aggiunto barbuttItem.enabled = NO; dato che potrei ancora far sparare il pulsante se lo colpissi abbastanza.
Stickley,

1
Non funziona per me. Ho pensato che fosse perché stavo usando un pulsante Aggiungi con l'immagine '+', ma ho provato un pulsante Personalizzato con il testo "Nuovo" invece e ancora non svanisce. L'abilitazione cambia, quindi so che il mio codice è in esecuzione. Qualche idea? Nota che questo pulsante è stato creato in uno storyboard e ha un seguito, quindi non voglio passare a un pulsante programmatico
Rabarbaro

19
Non sembra funzionare in una barra degli strumenti del controller di navigazione, ma funziona con altre barre degli strumenti.
Ha disegnato Rosenberg il

3
Lo nasconde ma risponde ancora ai tocchi. Per me si comporta come un pulsante invisibile.
Tibidabo,

Se hai impostato il colore globale della tinta usando questa linea self.window?.tintColor = APP_PRIMARY_COLORin delegazione dell'app, allora questo non funzionerà
Mehul Thakkar

60

È possibile nascondere un pulsante in posizione senza modificarne la larghezza o rimuoverlo dalla barra. Se imposti lo stile su semplice, rimuovi il titolo e disabiliti il ​​pulsante, scomparirà. Per ripristinarlo, basta invertire le modifiche.

-(void)toggleBarButton:(bool)show
{
    if (show) {
        btn.style = UIBarButtonItemStyleBordered;
        btn.enabled = true;
        btn.title = @"MyTitle";
    } else {
        btn.style = UIBarButtonItemStylePlain;
        btn.enabled = false;
        btn.title = nil;
    }
}

2
Questo ha funzionato per me semplicemente impostando btn.title = nil. Sto anche impostando abilitato = NO, per ogni evenienza ...
Pork 'n' Bunny

3
L'impostazione di buttonItem.title su zero non ha funzionato per me in iOS7. Il pulsante non è riapparso quando è stato ripristinato. Tuttavia, ciò che ha funzionato è stato l'impostazione di buttonItem.title = @ "";
Mark Knopper

42

Di seguito è la mia soluzione sebbene stavo cercando la barra di navigazione.

navBar.topItem.rightBarButtonItem = nil;

Qui "navBar" è un IBOutlet per NavigationBar nella vista in XIB Qui volevo nascondere il pulsante o mostrarlo in base a una condizione. Quindi sto testando la condizione in "If" e, se vero, sto impostando il pulsante su zero nel metodo viewDidLoad della vista target.

Questo potrebbe non essere rilevante per il tuo problema, ma qualcosa di simile in caso si desideri nascondere i pulsanti su NavigationBar


Se si desidera reimpostare in seguito rightBarButtonItem, assicurarsi che l'elemento del pulsante sia memorizzato in un IBOutlet forte in modo che non venga rilasciato quando lo si toglie dalla barra di navigazione.
Nate,

30

Per Swift 3 e Swift 4 puoi farlo per nascondere UIBarButtomItem:

self.deleteButton.isEnabled = false
self.deleteButton.tintColor = UIColor.clear

E per mostrare UIBarButtonItem:

self.deleteButton.isEnabled = true
self.deleteButton.tintColor = UIColor.blue

Sul tintColorè necessario specificare il colore di origine che si sta utilizzando per laUIBarButtomItem


2
Ma questo richiederà ancora spazio per questo pulsante.
Makalele,

22

Attualmente sto eseguendo OS X Yosemite Developer Preview 7 e Xcode 6 beta 6 rivolti a iOS 7.1 e la seguente soluzione funziona bene per me:

  • Crea outlet per UINavigationIteme UIBarButtonItems
  • Eseguire il codice seguente per rimuovere

    [self.navItem setRightBarButtonItem:nil];
    [self.navItem setLeftBarButtonItem:nil];
    
  • Eseguire i seguenti codici per aggiungere nuovamente i pulsanti

    [self.navItem setRightBarButtonItem:deleteItem];
    [self.navItem setLeftBarButtonItem:addItem];

Grazie, questo è anche il metodo migliore che ho trovato. Assicurati solo che i tuoi riferimenti ai tuoi pulsanti siano forti.
giovedì

Inoltre, tieni presente che questo funziona solo se hai solo un pulsante lì. L'esempio rimuoverà TUTTI i pulsanti su quel lato.
Lnafziger,

@jyoung Questo ha funzionato per me, ma perché importa se il riferimento è forte? Non ho provato dall'altra parte, ma di solito non lo imposto in quanto non è l'impostazione predefinita.
Robert,

@Robert Si desidera utilizzare l'oggetto in un secondo momento, quindi è necessario assicurarsi che l'oggetto non venga spazzato via quando lo si imposta su zero. Se nient'altro stava trattenendo l'oggetto quando hai detto alla voce del pulsante della barra che è ok sbarazzarsene, il suo conteggio di riferimento sarebbe 0 e verrebbe raccolto.
giovedì

14

Ho usato IBOutlets nel mio progetto. Quindi la mia soluzione era:

@IBOutlet weak var addBarButton: UIBarButtonItem!

addBarButton.enabled = false
addBarButton.tintColor = UIColor.clearColor()

E quando dovrai mostrare di nuovo questa barra, basta impostare le proprietà invertite.

In Swift 3 invece enableusa la isEnableproprietà.


13

self.dismissButton.customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];


12

iOS 8. UIBarButtonItem con immagine personalizzata. Ho provato molti modi diversi, molti di loro non mi hanno aiutato. La soluzione di Max, setTintColornon stava cambiando in nessun colore. L'ho capito da solo, ho pensato che sarebbe stato utile a qualcuno.

Per nascondere:

[self.navigationItem.rightBarButtonItem setEnabled:NO];
[self.navigationItem.rightBarButtonItem setImage:nil];

Per mostrare:

[self.navigationItem.rightBarButtonItem setEnabled:YES];
[self.navigationItem.rightBarButtonItem setImage:image];

9

Prova in Swift , non aggiornare tintColorse hai un design per il tuo UIBarButtonItem come la dimensione del carattere in AppDelegate, cambierà totalmente l'aspetto del tuo pulsante quando apparirà.

Nel caso di un pulsante di testo, la modifica del titolo può far scomparire il pulsante.

if WANT_TO_SHOW {
    myBarButtonItem.enabled = true
    myBarButtonItem.title = "BUTTON_NAME"
}else{
    myBarButtonItem.enabled = false
    myBarButtonItem.title = ""
}

7

Ho scoperto un'altra delle rughe nella tintColore isEnabledapproccio suggerito da Max e altri - quando VoiceOver è abilitato per l'accessibilità e il pulsante viene logicamente nascosto, il cursore di accessibilità sarà ancora concentrerà sul pulsante della barra, e lo stato che è "oscurata" (vale a dire, perché isEnablednon è in impostato su false). L'approccio nella risposta accettata non soffre di questo effetto collaterale, ma un altro lavoro che ho trovato è stato quello di impostare isAccessibilityElementsu false quando "nascondevo" il pulsante:

deleteButton.tintColor = UIColor.clear
deleteButton.isEnabled = false
deleteButton.isAccessibilityElement = false

E quindi isAccessibilityElementtornare a true quando "mostra" il pulsante:

deleteButton.tintColor = UIColor.blue
deleteButton.isEnabled = true
deleteButton.isAccessibilityElement = true

Il fatto che l'elemento del pulsante barra occupi ancora spazio non è stato un problema nel mio caso, poiché nascondevamo / mostravamo gli elementi del pulsante barra più a destra.


6
@IBDesignable class AttributedBarButtonItem: UIBarButtonItem {

    var isHidden: Bool = false {

        didSet {

            isEnabled = !isHidden
            tintColor = isHidden ? UIColor.clear : UIColor.black
        }
    }
}

E ora cambia semplicemente la isHiddenproprietà.


5

Miglioramento dalla risposta di @lnafziger

Salva i tuoi Barbutton in una presa forte e fallo per nasconderlo / mostrarlo:

-(void) hideBarButtonItem :(UIBarButtonItem *)myButton {
    // Get the reference to the current toolbar buttons
    NSMutableArray *navBarBtns = [self.navigationItem.rightBarButtonItems mutableCopy];

    // This is how you remove the button from the toolbar and animate it
    [navBarBtns removeObject:myButton];
    [self.navigationItem setRightBarButtonItems:navBarBtns animated:YES];
}


-(void) showBarButtonItem :(UIBarButtonItem *)myButton {
    // Get the reference to the current toolbar buttons
    NSMutableArray *navBarBtns = [self.navigationItem.rightBarButtonItems mutableCopy];

    // This is how you add the button to the toolbar and animate it
    if (![navBarBtns containsObject:myButton]) {
        [navBarBtns addObject:myButton];
        [self.navigationItem setRightBarButtonItems:navBarBtns animated:YES];
    }
}

Se mai richiesto, utilizzare sotto la funzione.

[self showBarButtonItem:self.rightBarBtn1];
[self hideBarButtonItem:self.rightBarBtn1];

5

Basta impostare barButton.customView = UIView()e vedere il trucco


Ciò che fa questa risposta è consentire a tutto il dimensionamento flessibile di funzionare. In realtà è una risposta super efficiente. Probabilmente accoppiato con un'estensione sarebbe perfetto.
Adrian_H,

4

Non c'è modo di "nascondere" un UIBarButtonItem che è necessario rimuoverlo da superView e aggiungerlo nuovamente quando si desidera visualizzarlo di nuovo.


Questo in realtà non è vero: il metodo descritto da Max funziona bene.
Northernman,

1
nothernman - Max in realtà non è corretto. In realtà non sta nascondendo il pulsante nel modo in cui la maggior parte delle persone definirebbe "nascondersi". Lo sta semplicemente rendendo non visibile e disabilitando l'interazione dell'utente. Il pulsante è ancora lì e occupa spazio. Dipende da come vuoi definire "nascondere", credo che lo spirito della domanda originale volesse effettivamente rimuoverlo / aggiungerlo, non solo renderlo invisibile.
Michael Peterson,

4

Questo è molto indietro nell'elenco delle risposte, ma nel caso in cui qualcuno desideri una copia e incolla facile per la soluzione rapida, eccolo

func hideToolbarItem(button: UIBarButtonItem, withToolbar toolbar: UIToolbar) {
    var toolbarButtons: [UIBarButtonItem] = toolbar.items!
    toolbarButtons.removeAtIndex(toolbarButtons.indexOf(button)!)
    toolbar.setItems(toolbarButtons, animated: true)
}

func showToolbarItem(button: UIBarButtonItem, inToolbar toolbar: UIToolbar, atIndex index: Int) {
    var toolbarButtons: [UIBarButtonItem] = toolbar.items!
    if !toolbarButtons.contains(button) {
        toolbarButtons.insert(button, atIndex: index)
        toolbar.setItems(toolbarButtons, animated:true);
    }
}

Non male ma devi dare un UINavigationItem come parametro e non UIToolbar perché ti chiede di nascondere un UIBarButtonItem. Ho modificato la tua funzione in questo modo: func hideToolbarItem (pulsante: UIBarButtonItem, con barra degli strumenti barra degli strumenti: UINavigationItem) {var toolbarButtons: [UIBarButtonItem] = toolbar.rightBarButtonItems! toolbarButtons.removeAtIndex (toolbarButtons.indexOf (button)!) toolbar.setRightBarButtonItems (toolbarButtons, animato: true)} e funziona alla grande
Kingalione

3

Un modo per farlo è usare la initWithCustomView:(UIView *)proprietà di quando si alloca il UIBarButtonItem. La sottoclasse per UIViewavrà la proprietà nascondi / nascondi.

Per esempio:

1. Avere un oggetto UIButtonche si desidera nascondere / scoprire.

2. Crea UIButtoncome visualizzazione personalizzata. Piace :

UIButton*myButton=[UIButton buttonWithType:UIButtonTypeRoundedRect];//your button

UIBarButtonItem*yourBarButton=[[UIBarButtonItem alloc] initWithCustomView:myButton];

3. Puoi nascondere / mostrare ciò myButtonche hai creato.[myButton setHidden:YES];


Tuttavia, non colmerà il divario tra gli altri pulsanti: quando è "nascosto" ci sarà un'area vuota sulla barra degli strumenti.
lnafziger,

@lnafziger Sì, è vero, ma non ho letto la menzione OP sulla chiusura del divario tra i pulsanti, ma è un buon punto da notare però.
iNoob,

1
Grazie, anche la tua risposta è utile, ma penso che la maggior parte delle persone quando vogliono nascondere un pulsante su una barra degli strumenti vogliono che sembri che non ci sia affatto (senza l'area vuota). Se è quello di sinistra o di destra, non importerebbe davvero.
lnafziger,

Aspetti positivi, iNoob e Inafziger - non l'ho menzionato in alcun modo, ma sì, preferirei che non ci fosse un punto vuoto.
Sasha,

3

Per la versione Swift, ecco il codice:

Per UINavigationBar:

self.navigationItem.rightBarButtonItem = nil

self.navigationItem.leftBarButtonItem = nil

2

L'impostazione del colore del testo su un colore chiaro quando l'elemento del pulsante della barra è disabilitato è probabilmente un'opzione più pulita. Non c'è stranezza che devi spiegare in un commento. Inoltre non distruggi il pulsante in modo da mantenere comunque tutti i segues dello storyboard associati.

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

Quindi, quando vuoi nascondere l'elemento del pulsante della barra, puoi semplicemente fare:

self.navigationItem.rightBarButton.enabled = NO;

È zoppo che non ci siano proprietà nascoste ma questo offre lo stesso risultato.


1
Avevo un pulsante dentro rightBarButtonItem. Quindi ho impostato il suo abilitato su NO e ho cambiato la sua immagine su stato disabilitato su zero. Ha funzionato come un fascino ... Grazie
Skywalker il

ottima idea, tuttavia l'impostazione dell'immagine su null non ha funzionato per me, ho dovuto mettere un quadratino trasparente di 20x20 come immagine
Lena Bru,

2

Nel caso in cui UIBarButtonItem abbia un'immagine al posto del testo, puoi farlo per nasconderlo: navigationBar.topItem.rightBarButtonItem.customView.alpha = 0.0;


2

Alcuni metodi di supporto che ho pensato di condividere sulla base della risposta accettata da lnafziger in quanto ho più barre degli strumenti e più pulsanti in ciascuno:

-(void) hideToolbarItem:(UIBarButtonItem*) button inToolbar:(UIToolbar*) toolbar{
    NSMutableArray *toolbarButtons = [toolbar.items mutableCopy];
    [toolbarButtons removeObject:button];
    [toolbar setItems:toolbarButtons animated:NO];
}

-(void) showToolbarItem:(UIBarButtonItem*) button inToolbar:(UIToolbar*) toolbar atIndex:(int) index{
    NSMutableArray *toolbarButtons = [toolbar.items mutableCopy];
    if (![toolbarButtons containsObject:button]){
        [toolbarButtons insertObject:button atIndex:index];
        [self setToolbarItems:toolbarButtons animated:YES];
    }
}

2

Puoi facilmente ottenere la vista e nasconderla in questo modo

let view: UIView = barButtonItem.valueForKey("view") as! UIView
view.hidden = true

2

Se stai usando Swift 3

if (ShowCondition){
   self.navigationItem.rightBarButtonItem = self.addAsset_btn 
 } 
else {
   self.navigationItem.rightBarButtonItem = nil
 }

2

Ecco un'estensione che gestirà questo.

extension UIBarButtonItem {

    var isHidden: Bool {
        get {
            return tintColor == .clear
        }
        set {
            tintColor = newValue ? .clear : .white //or whatever color you want
            isEnabled = !newValue
            isAccessibilityElement = !newValue
        }
    }

}

USO:

myBarButtonItem.isHidden = true

1

A completamento della risposta di Eli Burke, se hai UIBarButtonItemun'immagine di sfondo anziché un titolo, puoi utilizzare il codice:

-(void)toggleLogoutButton:(bool)show{
    if (show) {
        self.tabButton.style = UIBarButtonItemStyleBordered;
        self.tabButton.enabled = true;
        UIImage* imageMap = [UIImage imageNamed:@"btn_img.png"];
        [((UIButton *)[self.tabButton customView]) setBackgroundImage:imageMap forState:UIControlStateNormal];
    } else {
        self.tabButton.style = UIBarButtonItemStylePlain;
        self.tabButton.enabled = false;
        [((UIButton *)[self.tabButton customView]) setBackgroundImage:nil forState:UIControlStateNormal];
    }
}

0

È necessario manipolare l'array toolbar.items.

Ecco un po 'di codice che uso per nascondere e visualizzare un pulsante Fine. Se il pulsante si trova sul bordo estremo della barra degli strumenti o tra altri pulsanti, gli altri pulsanti si sposteranno, quindi se si desidera che il pulsante scompaia, posizionare il pulsante come ultimo pulsante verso il centro. Animare il pulsante mossa per effetto, mi piace abbastanza.

-(void)initLibraryToolbar {

    libraryToolbarDocumentManagementEnabled = [NSMutableArray   arrayWithCapacity:self.libraryToolbar.items.count];
    libraryToolbarDocumentManagementDisabled = [NSMutableArray arrayWithCapacity:self.libraryToolbar.items.count];
    [libraryToolbarDocumentManagementEnabled addObjectsFromArray:self.libraryToolbar.items];
    [libraryToolbarDocumentManagementDisabled addObjectsFromArray:self.libraryToolbar.items];
    trashCan = [libraryToolbarDocumentManagementDisabled objectAtIndex:3];
    mail = [libraryToolbarDocumentManagementDisabled objectAtIndex:5];
    [libraryToolbarDocumentManagementDisabled removeObjectAtIndex:1];
    trashCan.enabled = NO;
    mail.enabled = NO;
    [self.libraryToolbar setItems:libraryToolbarDocumentManagementDisabled animated:NO];

}

così ora puoi usare il seguente codice per mostrare il tuo pulsante

[self.libraryToolbar setItems:libraryToolbarDocumentManagementEnabled animated:YES];
trashCan.enabled = YES;
mail.enabled = YES; 

o per nascondere il tuo pulsante

[self.libraryToolbar setItems:libraryToolbarDocumentManagementDisabled animated:YES];
trashCan.enabled = NO;
mail.enabled = NO;

0

In IB se lasci vuoto il titolo del pulsante, questo non apparirà (mai inizializzato?). Lo faccio spesso durante lo sviluppo durante gli aggiornamenti dell'interfaccia utente se voglio che un elemento del pulsante della barra scompaia per una build senza eliminarlo e distruggere tutti i suoi riferimenti di outlet.

Ciò non ha lo stesso effetto durante il runtime, l'impostazione del titolo del pulsante su zero non farà scomparire l'intero pulsante. Siamo spiacenti, non rispondo davvero alla tua domanda, ma potrebbe essere utile per alcuni.

Modifica: questo trucco funziona solo se lo stile del pulsante è impostato su semplice


0

Aggiungerò la mia soluzione qui perché non la trovo ancora menzionata qui. Ho un pulsante dinamico la cui immagine dipende dallo stato di un controllo. La soluzione più semplice per me era impostare l'immagine nilse il controllo non era presente. L'immagine è stata aggiornata ogni volta che il controllo è stato aggiornato e, quindi, questo era ottimale per me. Solo per essere sicuro di aver impostato anche enableda NO.

L'impostazione della larghezza su un valore minimo non ha funzionato su iOS 7.


0

Con il merito a @lnafziger, @MindSpiker, @vishal, et. al,

La linea più semplice a cui sono arrivato per un singolo pulsante della barra destra (o sinistra) è:

self.navigationItem.rightBarButtonItem = <#StateExpression#>
    ? <#StrongPropertyButton#> : nil;

Come in:

@interface MyClass()

@property (strong, nonatomic) IBOutlet UIBarButtonItem *<#StrongPropertyButton#>;

@end

@implementation

- (void) updateState
{
    self.navigationItem.rightBarButtonItem = <#StateExpression#>
        ? <#StrongPropertyButton#> : nil;
}

@end

Ho provato questo e funziona per me (con l'elemento pulsante a barra forte cablato tramite IB).


Funzionerà se hai un solo pulsante, ma se hai più pulsanti dovrai usare un metodo più lungo la linea della mia risposta.
lnafziger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.