Délégué de la touche appuyez sur à l'intérieur personnalisé uitableviewcell

J'ai lu l'Apple docs et j'ai parcouru ces forums et j'ai (avec succès) fait quelques tutoriels et fait mes propres délégués, et je encore ne comprenez pas quelque chose. Je suis sûr que c'est quelque chose que je suis espacement mais depuis que j'ai fait diligence raisonnable et ne sais toujours pas ce que je fais mal, j'espérais que l'un de vous serait capable de me dire.

La situation:

J'ai un custom UITableViewCell qui dispose d'un bouton. Lorsque le bouton est actionné, je suis en train de tirer vers le haut la UIImagePickerController forme d'un délégué de cette cellule personnalisé. Je peux intercepter le bouton appuyez sur, aucun problème, mais le flux ne passe jamais à la méthode du délégué. En d'autres termes, lorsque j'entre le code, tout est bien jusqu'à ce que j'essaie à l'étape de la touche cible méthode à la méthode du délégué dans la deuxième classe. Il juste n'est jamais appelé.

Voici le code.

Dans le fichier d'interface pour la cellule personnalisé j'ai mis l'id du délégué, mettre en place la IBOutlet pour la UIButton, et de définir le protocole de la méthode:

#import <UIKit/UIKit.h>

@protocol CustomPicCellDelegate;

@interface CustomPicCell : UITableViewCell <UITextInputTraits> {

    UIButton *picButton;
    ...
    id<CustomPicCellDelegate> cellDelegate;
}

@property (nonatomic, retain) IBOutlet UIButton *picButton;
...
@property (nonatomic, assign) id<CustomPicCellDelegate> cellDelegate;
...
- (IBAction)getAPic;

@end

@protocol CustomPicCellDelegate <NSObject> 
- (void)getPhoto;
@end

La UIButton est accroché jusqu'à la getAPic méthode de l'IB.

Dans la mise en œuvre de fichier pour la cellule personnalisé j'ai mis la méthode que le UIButton cibles sur la touche jusqu'à l'intérieur et tente d'appeler la méthode du délégué délégué:

#import "CustomPicCell.h"

@implementation CustomPicCell
@synthesize cellDelegate;

...

- (IBAction)getAPic {
    NSLog(@"You are here ...");

    if (cellDelegate && [cellDelegate respondsToSelector:@selector(getPhoto)]) {
        [cellDelegate getPhoto];
    }
}

Dans la délégué de classe de l'interface je l'ai mis en tant que délégué de la cellule personnalisé:

@interface DelegateClass : UIViewController < ... CustomPicCellDelegate> {
...

Dans la déléguée de la classe de mise en œuvre, j'essaie de tirer la UIImagePickerController:

- (void)getPhoto {
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    picker.sourceType = UIImagePickerControllerSourceTypeCamera;

    [self presentModalViewController:picker animated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo (NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
}

Je ne peux pas comprendre pourquoi le délégué n'est jamais appelé! S'il vous plaît comprendre, je suis sûr que j'ai raté quelque chose, mais j'ai été plus de la documentation et de ces forums de nombreuses fois et je ne trouve pas ce que je fais de mal. Je suis à l'aide de délégués dans d'autres parties du code de l'amende juste. Cette une tache ne fonctionne pas. Quelqu'un peut-il me montrer ce que je suis la graisse doigté?
Grâce

Où avez-vous attribuer cellDelegate?
Oh je pourrais claquer moi-même! Ole Begemann vous êtes 100% droite. J'aurais juré que j'avais mis. mais je suppose que la fin de la nuit de codage n'est pas mon ami. Je suis un idiot pour manquer ça! Je vous remercie beaucoup. Que résolu. Toujours triple de contrôle dans la matinée, je suppose.
Ole, Pourriez-vous s'il vous plaît partagez également votre correction de l'affichage que vous avez attribué à la cellDelegate? J'ai le même code que le vôtre et a eu un problème similaire où le délégué des méthodes définies dans l'autre point de vue, les contrôleurs fonctionnent parfaitement. Toutefois, le délégué de la méthode définie dans une coutume UITableViewCell n'était pas demandé dans le UITableViewController qui a été à l'aide de la UITableViewCell.
ajouter cell.cellDelegate=self à -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath fonction

OriginalL'auteur addzo | 2011-02-05