iOS: imposta UIToolBarItem su UINavigationController
-
27-10-2019 - |
Domanda
Trascino fuori un elemento della barra degli strumenti nello storyboard e lo imposto sul mio controller di navigazione, ma quando eseguo il mio codice non c'è, c'è qualcosa che mi manca?
MODIFICA:
Ho provato a impostarlo anche nel codice nel mio metodo viewDidLoad:
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Map" style:UIBarButtonItemStyleBordered target:self action:@selector(viewMap)];
self.navigationItem.rightBarButtonItem = rightBarButton;
Non funzionerà neanche.
Ecco come è impostato nel mio storyboard:
<⇨UPDATE:
Ho appena trovato il mio problema.Nel codice del controller, quando aggiorno i suoi contenuti, cambio l'elemento del pulsante della barra di destra per uno spinner e non lo reimpostato mai come aveva prima.
Soluzione
UINavigationController
ha già una barra degli strumenti incorporata. Ha una proprietà toolBarHidden
che è impostata su YES
per impostazione predefinita, motivo per cui normalmente non viene visualizzata. Se utilizzi lo storyboard, puoi facilmente rendere visibile la barra degli strumenti in basso incorporata selezionando la casella di controllo "Mostra la barra degli strumenti" nell'inspector quando è selezionato il controller di navigazione.
Consulta la documentazione di UINavigationController qui per maggiori dettagli.
MODIFICA:
Ok, sembra che quello che stai cercando di fare sia aggiungere un pulsante destro al UINavigationItem
del controller di visualizzazione. Per eseguire questa operazione nello storyboard, trascina un "elemento pulsante barra" dalla libreria oggetti sull'elemento di navigazione nel tuo ViewController. È quindi possibile impostare il titolo / stile / ecc. Dell'elemento del pulsante della barra. Se non viene ancora visualizzato nulla quando esegui la tua app, assicurati che il tuo ViewController sia collegato correttamente con un segue al controller di navigazione.
Assicurati inoltre di aggiungere l'elemento del pulsante a barra all'elemento di navigazione del controller di visualizzazione, NON al controller di visualizzazione stesso. Ecco come dovrebbe apparire la configurazione nel tuo storyboard:
Altri suggerimenti
Per aggiungere un elemento a una barra di navigazione, devi aggiungere un Bar Button Item
all ' Elemento di navigazione contenuto nel controller della vista.Vai al tuo storyboard, trova il VC corretto e trova l'elemento di navigazione (è nella gerarchia mostrata nella "scena" del controller di navigazione).È sufficiente trascinare un elemento del pulsante della barra nella gerarchia sotto l'elemento di navigazione o direttamente sulla barra di navigazione nel display del visual builder.
Il controller di navigazione guarda l'elemento di navigazione del tuo VC solo quando quel VC viene inserito nello stack;quindi la modifica dell'elemento di navigazione del VC in viewDidLoad
non ha alcun effetto.
(L'ho già fatto in modo programmatico ma non ho il codice con me, quindi forse lo aggiungerò in seguito ...)