A partire da oggi non è possibile disattivare il pulsante Indietro utilizzando la proprietà enabled
. La proprietà backBarButtonItem
sarà nil
a meno che non si crei un elemento personalizzato e anche in questo caso ignorerà la proprietà enabled
. Ci sono un paio (non soddisfacenti) di modi per aggirare questo problema.
nascondere il pulsante
Questo è ciò che Apple vuole che tu faccia dato che ignorano la proprietà enabled
. È semplice come
navigationItem.hidesBackButton = true
e dovrebbe essere l'approccio preferito a meno che non si abbiano buone ragioni.
Disabilitare e Tinta la barra di navigazione
È possibile disattivare interazione con l'utente su tutta la barra di navigazione e la tinta per fare il pulsante Indietro apparire disabilitato.
navigationController?.navigationBar.userInteractionEnabled = false
navigationController?.navigationBar.tintColor = UIColor.lightGrayColor()
Ciò, purtroppo, influenzano gli altri elementi nella barra di navigazione e quindi potrebbe non essere un'opzione se, ad esempio, si dispone di un altro elemento pulsante della barra sul lato destro.
utilizzare un pulsante personalizzato barra di sinistra Articolo
Il leftBarButtonItem
non ignora la proprietà enabled
modo si potrebbe creare un elemento personalizzato e attivare manualmente la comparsa quando viene attivata.
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(ThisClass.backButtonTapped))
...
navigationItem.leftBarButtonItem?.enabled = false
func backButtonTapped() {
self.navigationController?.popViewController(animated: true)
}
Questo, tuttavia, non ha lo stile del pulsante barra posteriore con l'indicatore triangolare principale.
Non voglio nasconderlo, ho aggiornato la mia domanda. – Deny
Ho provato tutte le opzioni possibili ma non è possibile disabilitare il pulsante Indietro guarda il link http://stackoverflow.com/questions/25362050/how-to-disable-a-navigation-bar-button-item-in-ios , O è necessario creare il pulsante Indietro personalizzato. – BKjadav