2011-03-14 4 views
0

Je sais qu'il existe une réponse facile à cette question, mais je n'ai certainement pas été capable de l'exécuter correctement.Méthode d'appel à partir de plusieurs contrôleurs

Je fais un jeu où j'ai un contrôleur pour chaque niveau. Lorsque vous battez un niveau, je veux une méthode qui va charger et afficher le niveau suivant, c'est-à-dire le prochain contrôleur. Je veux être en mesure d'utiliser cette même méthode de chaque contrôleur.

Ma question est où puis-je créer la méthode et comment puis-je l'appeler?

J'ai essayé des délégués, en mettant la méthode dans le contrôleur d'application, etc. Je ne peux pas comprendre celui-ci. RoorViewContoroller ou simplement le contrôleur de racine est ce dont vous avez besoin.

Répondre

0

Je travaille sur le jeu, aussi, j'utilise le moteur de jeu Cocos2d-iphone. Je vais vous montrer comment ça marche là-bas. Il existe une classe commune, implémentée en tant que Singleton, appelée ССDirector. C'est un contrôleur racine par instance.

//AppDelegate.m (entry point) 
//I run first scene from AppDelegate 
[[CCDirector sharedDirector] runWithScene: [MainMenu scene]]; 
.... 
//MainMenu.m 
//I change scene from Menu to Game Level 

- (void) runLevel: (int)level withTheme: (int)themeNo 
{ 
... 
    Class GameClass;   //I can run different levels 
... 
    [[CCDirector sharedDirector] replaceScene:[GameClass scene]]; 
} 

En interne, CCDirector libère le contrôleur actuel (MainMenu) et conserve uniquement la création (scène GameClass).

Questions connexes