2010-10-28 8 views
19

fondamentalement je veux savoir si le contrôleur de vue que je suis dedans est le contrôleur de vue de racine ou pas.Comment savoir si un UIViewController est le contrôleur de vue racine?

Si ce n'est pas je veux mettre un bouton dans la barre de navigation qui dit "retour" (comme si c'était un bon bouton de retour - ce peu je sais comment faire). Avant de demander, j'ai supprimé tous les titres de mes contrôleurs de vue - je ne voulais pas qu'ils apparaissent sur ma barre de navigation ... c'est très compliqué - mais cela signifie que lorsque je passe par ma pile de navigation aucun des contrôleurs de vue poussés n'a un bouton de retour. :/

Merci Tom

+1

Vous pouvez réaliser la même chose en établissant que la propriété backBarButtonItem du navigationItem de chaque contrôleur de vue. Le contrôleur de navigation l'utilisera à la place du titre et s'occupera de la navigation pour vous. –

+0

oh droite .... y at-il un moyen de le faire à chaque bouton de retour dans l'application? Par exemple avec un code de catégorie ou quelque chose? –

+0

Si vous avez beaucoup de classes de contrôleurs de vue, mais que vous souhaitez que les éléments de retour soient les mêmes dans chacun d'entre eux, vous pouvez créer un parent commun pour ces contrôleurs et définir l'élément dans cet init. –

Répondre

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

brillant. :) Je vous remercie. –

+0

Bien! merci;) –

7

Vous pouvez aussi essayer:

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

Génial, merci – AamirR

Questions connexes