Cómo usar el patrón delegado en iPhone

Tengo algunas preguntas sobre el uso de delegado patten en iPhone.

Este es el código usando patten delegado. Este código funciona

SecondViewController *secondViewController = [[SecondViewController alloc] init];   
    secondViewController.delegate = self;
    [self.navigationController pushViewController:secondViewController animated:YES];
    [secondViewController release];

Escribí un código como este. Pero no funciona. Pensé que delegado no es válido.

GoogleDocsViewController *googleDocsView = [[GoogleDocsViewController alloc]initWithNibName:@"GoogleDocsViewController" bundle:nil];
    googleDocsViewController.delegate = self;
    [self.navigationController pushViewController:googleDocsView animated:YES];
    [googleDocsView release]; 

No sabía por qué este código tiene advertencia. Advertencia como esta.

La clase 'RootViewController' no implementa el protocolo 'GoogleDocsViewControllerDelegate'

Que puedo hacer ?

AGREGAR CÓDIGO FUENTE

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 *) es la fuente de prueba.

Respuestas a la pregunta(1)

Su respuesta a la pregunta