2010-10-28 24 views
19

básicamente quiero saber si el controlador de vista en el que estoy es el controlador de la vista raíz o no.¿Cómo saber si un UIViewController es el controlador de la vista raíz?

Si no es así, quiero poner un botón en la barra de navegación que diga "volver" (como si fuera un botón de retroceso adecuado, este bit lo sé).

Antes de preguntar, eliminé todos los títulos de mis controladores de vista, no quería que se mostraran en mi barra de navegación ... es muy complicado, pero esto significa que cuando reviso mi pila de navegación ninguno de los controles de vista empujados tiene un botón de retroceso. :/

Gracias Tom

+1

se puede lograr lo mismo con sólo establecer la propiedad backBarButtonItem del navigationItem de cada controlador de vista. El controlador de navegación usará eso en lugar del título y se encargará de la navegación por usted. –

+0

oh, cierto ... ¿hay alguna manera de hacerlo con cada botón de retroceso en la aplicación? Por ejemplo, con algún código de categoría o algo así? –

+0

Si tiene muchas clases de controladores de vista pero desea que los elementos secundarios sean los mismos en cada uno, podría crear un elemento primario común para esos controladores y establecer el elemento en ese init. –

Respuesta

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

brillante. :) gracias. –

+0

¡Agradable! gracias;) –

7

También puede probar:

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

Impresionante, gracias – AamirR

Cuestiones relacionadas