// //
MyGameViewController.h
//
#import < UIKit/UIKit.h>
#import "SecondViewController.h"Comment appeler la méthode de ViewController pour afficher 2nd View?@interface MyGameViewController: UIViewController {
IBOutlet SecondViewController * secondViewController;
}
- (IBAction) goToSecondView;
@end
// //
MyGameViewController.m
//
#import "MyGameViewController.h"@implementation MyGameViewController
- (IBAction) goToSecondView {
[self presentModalViewController: secondViewController animé: OUI];
}
// //
MyGameView.h
//
#import < UIKit/UIKit.h>
#import "Sprite.h"@interface MyGameView : UIView {...}
Actuellement j'ai implémenté un bouton sur le MyGameView.xib pour appeler la vue secondViewController et cela fonctionne. Mais je veux que le secondViewController soit appelé en programmant dans MyGameView.m quand il y a une interruption, pas en appuyant sur un bouton. Par conséquent, je pense qu'il ya 2 approches:
a) soit faire la méthode goToSecondView disponible pour MyGameView.m
b) Mettre en œuvre tout le code dans MyGameViewController.h et MyGameViewController.m à MyGameView.m.
Problèmes:
1) Quand on essaie de faire a) se produire, je dois faire la méthode goToSecondView en commençant par (void), pas (IBAction). Mais alors comment l'invoquer dans MyGameView.m?
2) J'ai essayé de faire b) et j'ai implémenté tout le code dans MyGameView.m. Mais presentModalViewController est une méthode de ViewController et ne fonctionne pas dans UIView. Alors, quelle est la solution?
Merci pour votre réponse de détail. Je suis un novice et je suis un peu perdu. La plupart des mots-clés que vous avez mentionnés ci-dessus sont nouveaux pour moi, tels que @protocol, #pragma mark ..., etc. 1) Pourriez-vous expliquer ce que fait l'algorithme? Je dois créer une autre classe de délégué afin qu'une instance de celui-ci puisse être créée? Tout ce qui précède ressemble à la déclaration typique que j'ai utilisée. 2) à quoi se réfère ** MyGameViewDelegate **? Un autre fichier .h.m que je dois créer? 3) Alors, comment définir MyGameViewController pour être le délégué de MyGameView? Il existe déjà des fichiers MyGameAppDelegate. – NorthKyut
Les protocoles sont une partie fondamentale d'Objective-c. Tout livre décent vous dira à leur sujet. Les documents d'Apple sont disponibles sur http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html. –
+1 pour une bonne explication et une solution :) – mAc