Как использовать шаблон делегата на iPhone - PullRequest
1 голос
/ 19 февраля 2010

У меня есть несколько вопросов об использовании патента делегата на 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 *) является тестовым источником.

1 Ответ

3 голосов
/ 19 февраля 2010

Можете ли вы сказать нам, какой класс создает GoogleDocsViewController? Проверьте заголовок этого класса (файл .h) и посмотрите, реализует ли он GoogleDocsViewControllerDelegate.

По сути, делегат - это объект, который будет прослушивать интересные события из GoogleDocsViewController, и он должен реализовывать упомянутый протокол, чтобы он "знал", какие действия нужно выполнить при запуске событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...