2010-05-15 3 views
6

Situation:
J'ai un projet Xcode basé sur le modèle "Navigation-Based-Application". Cela signifie que j'ai un seul UINavigationController qui gère un UIViewController.Comment basculer entre les contrôleurs de navigation?

Ce que je veux faire:
Ce que je veux faire est d'ajouter un plus UINavigationController à mon projet - et être en mesure de basculer entre eux. (Je veux le faire pour faire place à un contenu sans rapport séparé de sorte qu'il n'a pas de bouton de retour pointant vers le contrôleur de vue racine.)

Question:
Comment puis-je ajouter une UINavigationController à mon projet et basculer entre les deux UINavigationControllers?

+0

Pourquoi ne pas simplement cacher le bouton de retour? – drawnonward

+0

Comment changez-vous entre les deux zones? Un UITabBarController? – Rudiger

Répondre

9

Le système d'exploitation iPhone le plus courant et le plus naturel consiste à ajouter un UITabBarController à votre application. Le modèle Xcode Application Barre d'onglet vous guidera dans la bonne direction pour l'utiliser.

Mais ...

Si vous ne voulez pas avoir une barre d'onglets dans votre application, et que vous souhaitez basculer entre les différentes instances UINavigationController (ou tout UIViewController ailleurs), vous pouvez faire quelque chose comme ça .

D'abord vous devez créer vos instances UINavigationController dans un endroit approprié (par exemple un nouveau contrôleur de vue, ou dans votre délégué d'application, si vous voulez vous en sortir facilement). Vous pouvez ensuite basculer entre les contrôleurs en changeant simplement la vue du contrôleur de navigation qui devrait être visible.

exemple dans le délégué demande, "firstNavigationController" et "secondNavigationController" sont UINavigationController variables d'instance:

- (void)showFirstNavigationController { 
    [secondNavigationController.view removeFromSuperview]; 
    [self.window addSubview:firstNavigationController.view]; 
} 

Ceci affichera simplement la première place du second contrôleur de navigation. Notez que cet exemple est très simple. Je n'ai pas pris en considération que vous devez gérer correctement les méthodes viewWillAppear:, viewDidAppear: et ainsi de suite.

+0

Merci - et pour un crédit supplémentaire: Comment rendre la transition fluide (ou animée)? – RexOnRoids

+0

Vous pouvez accomplir cela aussi facilement avec des animations de 'UIView' de base. Avant la première ligne de ma méthode, ajoutez: '[UIView beginAnimations: @" myFlip "contexte: NULL];' et '[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft pourView: self.view cache: YES];' Et dans le bas: '[ UIView commitAnimations]; ' – alleus

+0

comment faire cela dans swift? – DeyaEldeen

Questions connexes