У меня есть несколько вопросов об использовании патента делегата на iPhone.
Это код, использующий делегат паттен. Этот код работает.
SecondViewController *secondViewController = [[SecondViewController alloc] init];
secondViewController.delegate = self;
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController release];
Я написал такой код. Но это не работает. Я думал, что делегат недействителен.
GoogleDocsViewController *googleDocsView = [[GoogleDocsViewController alloc]initWithNibName:@"GoogleDocsViewController" bundle:nil];
googleDocsViewController.delegate = self;
[self.navigationController pushViewController:googleDocsView animated:YES];
[googleDocsView release];
Я не знал, почему этот код имеет предупреждение. Предупреждение, как это.
Класс 'RootViewController' не реализует протокол 'GoogleDocsViewControllerDelegate'
Что я могу сделать?
ДОБАВИТЬ КОД ИСТОЧНИКА
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");
}
Этот текстовый метод googleViewControllerInputDidEnd: (NSString *) является тестовым источником.