Proprietà persistente rightBarButtonItem di UINavigationItem
-
03-07-2019 - |
Domanda
Questa potrebbe essere una domanda stupida, ma è possibile mantenere un UIBarButtonItem
corretto su più viste gestite da un UINavigationController
? Ho una progressione di viste che spesso condividono lo stesso UIBarButtonItem
, ma quando spingo una nuova vista sul mio UINavigationController
, devo ridefinire il pulsante ogni volta, anche se non è cambiato. Per lo più, la notevole animazione di transizione da una vista all'altra è ciò che mi preoccupa perché lo stesso pulsante esatto svanisce brevemente e poi rientra, il che non è necessario poiché non vi è alcun reale cambiamento visivo. Devo prendere in considerazione l'aggiunta di un UIButton
come sottoview del mio UINavigationBar
e realizzare un pulsante "barra destra" " effetto in questo modo?
Soluzione
Lo abbiamo fatto nella nostra app. Abbiamo creato un singolo UIBarButtonItem che scambiamo da un UIViewController a un altro mentre l'utente naviga. Il trucco era usare UINavigationControllerDelegate, il navigationController: willShowViewController: animato: metodo. Impostiamo il rightBarButtonItem di UIViewController in uscita su zero e il RightBarButtonItem del controller in arrivo sul tuo pulsante. È una seccatura da gestire, ma funziona.
Altri suggerimenti
UIBarButtonItems può essere creato come istanze autonome in un file pennino / xib. Se non c'è nulla di speciale in corso che ti impedisce di essere in grado di creare il pulsante nel builder Interface, dovresti collegarlo alla proprietà rightBarButtonItem di UINavigationItem per ogni controller di visualizzazione che deve riutilizzare il pulsante. Non è necessario alcun obiettivo c.