Como usar o padrão de delegação no iPhone
Tenho algumas perguntas sobre o uso do delegado patten no iPhone.
Este é o código usando delegado patten. Este código funciona.
SecondViewController *secondViewController = [[SecondViewController alloc] init];
secondViewController.delegate = self;
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController release];
Eu escrevi código assim. Mas isso não funciona. Eu pensei que delegar não é válido.
GoogleDocsViewController *googleDocsView = [[GoogleDocsViewController alloc]initWithNibName:@"GoogleDocsViewController" bundle:nil];
googleDocsViewController.delegate = self;
[self.navigationController pushViewController:googleDocsView animated:YES];
[googleDocsView release];
Eu não sabia por que esse código tem aviso. Aviso assim.
A classe 'RootViewController' não implementa o protocolo 'GoogleDocsViewControllerDelegate'
O que eu posso fazer ?
ADICIONAR CÓDIGO FONTE
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");
}
Este método de texto googleViewControllerInputDidEnd: (NSString *) é a fonte de teste.