2010-10-28 4 views
19

in pratica voglio sapere se il controller della vista in cui mi trovo è il controller della vista radice o meno.Come scoprire se un UIViewController è il controller di visualizzazione radice?

Se non è che voglio mettere un pulsante nella barra di navigazione che dice "indietro" (come se fosse un vero e proprio pulsante indietro - questo bit so come fare).

Prima di chiedere, ho rimosso tutti i titoli dal mio controller di vista - non volevo loro di mostrare sul mio barra di navigazione ... la sua molto complicato - ma questo significa che quando vado attraverso il mio stack di spostamento nessuno dei controller di visualizzazione pushed ha un pulsante indietro. :/

Grazie Tom

+1

si può ottenere la stessa cosa, semplicemente impostando la proprietà backBarButtonItem del navigationItem di ogni controller della vista. Il controller di navigazione userà quello al posto del titolo e si prenderà cura della navigazione per te. –

+0

oh giusto .... c'è un modo per farlo per ogni singolo pulsante indietro nell'app? Ad esempio con qualche codice di categoria o qualcosa del genere? –

+0

Se si dispone di molte classi di controller di visualizzazione ma si desidera che gli elementi precedenti siano gli stessi in ciascuno, è possibile creare un genitore comune per quei controller e impostare l'elemento in tale init. –

risposta

61
if (self != [self.navigationController.viewControllers objectAtIndex:0]) 
{ 
    // Put Back button in navigation bar 
} 
+0

brillante. :) grazie. –

+0

Bello! grazie;) –

7

Potete anche provare:

if (self.navigationController.viewControllers.count == 1) { 
    NSLog(@"self is RootViewController"); 
} 
+1

Fantastico, grazie – AamirR

Problemi correlati