2012-02-29 23 views
42

Ho un'applicazione con una barra di navigazione che spinge a un controller di visualizzazione della schermata di accesso e quindi spinge verso un menu principale. C'è un modo per rimuovere il pulsante Indietro dal menu principale, quindi l'utente non è in grado di tornare alla schermata di accesso?iOS come rimuovere il pulsante indietro?

Grazie!

MODIFICA: utilizzare Xcode 4.3 e eseguire tutto il lavoro sulle gambe a livello di programmazione.

risposta

104

Si può fare:

[self.navigationItem setHidesBackButton:YES]; 

Nel tuo secondo controller della vista (quello che si desidera nascondere il pulsante).

+0

Fantastico! Grazie – jbearden

+3

Potrebbe voler ripensare usando lo stack di navigazione e presentare invece un VC modale - vedi sotto. –

+0

Per riferimento futuro, se non funziona per te basta mettere quel codice in viewDidAppear: e inizierà a funzionare. –

6

La risposta di Peters è corretta, anche se penso che la domanda migliore sia perché? In uno schema come il tuo in cui desideri accedere a un utente, invece di utilizzare un VC inviato, presentare un VC modale e utilizzare un metodo delegato per recuperare l'utenteinfo ottenuto nel processo di accesso. Posso pubblicare un esempio di codice completo se ne hai bisogno, ma sembra che i dettagli siano stati elaborati con la tua procedura di accesso. Basta usare:

presentModalViewController 

invece di:

pushViewController 

In questo modo, non c'è bisogno di preoccuparsi per la pila di navigazione e fare qualcosa che in realtà non è in linea con le linee guida dell'interfaccia utente .

+0

Buon punto. Apprezzo il tuo feedback! – jbearden

1

Prova questo:

[self.navigationItem setHidesBackButton:YES]; 

O

[self.navigationItem setHidesBackButton:YES animated:YES]; 
2

a Swift

self.navigationItem.hidesBackButton = true 
0

Provato in Xcode7.3.1 , rapido

Nascondi solo la freccia indietro e disabilita l'azione di ritorno, ma posso ancora vedere il nome del precedente controller di visualizzazione.

Per coloro che desiderano nascondere anche il nome del controller di visualizzazione precedente, provare Yoga's answer per me. In swift

self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView()) 
Problemi correlati