2010-08-14 8 views
1

J'ai créé une application à partir du modèle de navigation donné par Apple. Maintenant, je veux ajouter un second contrôleur de navigation à mon application, y compris un nouveau UITableView. Quelqu'un peut-il montrer ma façon de faire cela? Merci!iPhone Sdk: Comment ajouter un second UINavigationController?

+0

Etes-vous sûr de vouloir un nouveau contrôleur de navigation et non un nouveau contrôleur de vue? –

+0

Oui, parce que je veux créer une toute nouvelle vue heirachy. –

+0

Voulez-vous basculer entre ces contrôleurs de navigation avec une barre d'outils ou une barre d'onglets? Ou le contrôleur de navigation est-il censé apparaître dans un dialogue modal? Ou quel est le besoin pour le second? – Codo

Répondre

1

Je pense que cela peut être fait. Dans votre délégué de l'application, vous faites normalement quelque chose comme [window addSubview:navController.view]. UIWindow est juste un UIView. Donc, si vous créez deux UIView Ivars dans le UIViewController qui contiendra les deux contrôleurs nav vous devriez être en mesure de faire quelque chose de semblable:

@interface MyViewController : UIViewController 
{ 
    UIView* upperView; 
    UIView* lowerView; 
} 

etc ...

MyUpperRootViewController* myUpperRVC = [[MyUpperRootViewController alloc] init... 
UINavigationController* myUpperNavController = [[UINavigationController alloc] initWithRootViewController:myUpperRVC]; 
[upperView addSubview:navController.view]; 
[myUpperRVC release]; 

et quelque chose de similaire sur lowerView .

Dans la vue racine ou les vues suivantes ajoutées aux contrôleurs, accédez-les de la manière habituelle, comme s'il y avait un contrôleur de navigation. [self.navigationController push... devrait se comporter normalement.

Pour animer les contrôleurs de vue, il suffit d'appliquer l'animation aux vues - upperView ou lowerView. Vous pouvez commencer avec leurs cadres hors de l'affichage visible, puis les changer en quelque chose de visible à l'intérieur d'un bloc d'animation.

Questions connexes