J'ai quelques questions sur l'utilisation de delegate patten sur iPhone.Comment utiliser le modèle délégué sur l'iPhone
Il s'agit d'un code utilisant delegate patten. Ce code fonctionne.
SecondViewController *secondViewController = [[SecondViewController alloc] init];
secondViewController.delegate = self;
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController release];
J'ai écrit un code comme celui-ci. Mais ça ne marche pas. Je pensais que le délégué n'est pas valide.
GoogleDocsViewController *googleDocsView = [[GoogleDocsViewController alloc]initWithNibName:@"GoogleDocsViewController" bundle:nil];
googleDocsViewController.delegate = self;
[self.navigationController pushViewController:googleDocsView animated:YES];
[googleDocsView release];
Je ne savais pas pourquoi ce code a un avertissement. Attention comme ça.
classe 'RootViewController' ne met pas en œuvre le protocole 'GoogleDocsViewControllerDelegate'
Que puis-je faire?
ADD SOURCE CODE
GoogleViewController.h
@protocol GoogleDocsViewControllerDelegate;
@interface GoogleDocsViewController : UIViewController<UITextFieldDelegate> {
id<GoogleDocsViewControllerDelegate> delegate;
}
@property (nonatomic,assign) id<GoogleDocsViewControllerDelegate> delegate;
@end
@protocol GoogleDocsViewControllerDelegate<NSObject>;
@required
-(void) googleViewControllerInputDidEnd:(NSString *)text;
@end
googleDocsViewController.m
-(void)googleViewControllerInputDidEnd:(NSString *)text{
NSLog(@"delegate");
}
Cette googleViewControllerInputDidEnd: Méthode texte (NSString *) est source de test. Pouvez-vous nous indiquer quelle classe est en train de créer GoogleDocsViewController?
Merci de poster la source. Puisque la méthode est marquée @required, avez-vous également ajouté la déclaration googleViewControllerInputDidEnd dans votre fichier d'implémentation (.m)? –