Objective c 从自定义uitableviewcell内的按钮点击委派

Objective c 从自定义uitableviewcell内的按钮点击委派,objective-c,delegates,uitableview,uibutton,Objective C,Delegates,Uitableview,Uibutton,我阅读了苹果文档,浏览了这些论坛,并且(成功地)完成了一些教程,并制作了自己的代理,但我仍然不理解一些东西。我确信这是我正在回避的事情,但由于我已经做了尽职调查,仍然不知道我做错了什么,我希望你们中的一位能够告诉我 情况: 我有一个自定义UITableViewCell,其中有一个按钮。当点击按钮时,我试图从该自定义单元格的代理中拉出UIImagePickerController。我可以捕捉并响应按钮点击没有问题,但流程永远不会进入委托方法。换句话说,当我逐步完成代码时,一切都很好,直到我尝试在第

我阅读了苹果文档,浏览了这些论坛,并且(成功地)完成了一些教程,并制作了自己的代理,但我仍然不理解一些东西。我确信这是我正在回避的事情,但由于我已经做了尽职调查,仍然不知道我做错了什么,我希望你们中的一位能够告诉我

情况:

我有一个自定义UITableViewCell,其中有一个按钮。当点击按钮时,我试图从该自定义单元格的代理中拉出UIImagePickerController。我可以捕捉并响应按钮点击没有问题,但流程永远不会进入委托方法。换句话说,当我逐步完成代码时,一切都很好,直到我尝试在第二个类中从button目标方法逐步转到delegate方法。只是从来没有人打过电话

这是密码

在自定义单元格的接口文件中,我为委托设置了id,为UIButton设置了IBOutlet,并设置了协议方法:

#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
在委托类接口中,我将其设置为自定义单元格的委托:

@interface DelegateClass : UIViewController < ... CustomPicCellDelegate> {
...
我不明白为什么代表从来没有接到过电话!请理解,我肯定我错过了一些东西,但我已经浏览了文档和这些论坛很多次,我找不到我做错了什么。我在代码的其他部分使用了委托,这很好。这一点不起作用。有人能告诉我什么是胖手指吗?
谢谢你为什么这样做?直接在UIViewController类中,您可以像这样为按钮分配操作

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     [cell. picButton addTarget:self 
                         action:@selector(getPhoto)
               forControlEvents:UIControlEventTouchUpInside];
    // ... 
}

你在哪里分配
cellDelegate
?哦,我真想揍自己!奥勒·贝格曼你是100%对的。我可以发誓是我定的。但我猜深夜编码不是我的朋友。我真是个白痴错过了!非常感谢你。这就解决了问题。我想,每天早上都要进行三次检查。Ole,你能不能也分享一下你如何分配cellDelegate的解决方案?我有与您类似的代码,并且有一个类似的问题,即在其他视图控制器中定义的委托方法可以完美地工作。但是,在使用UITableViewCell的UITableViewController中没有调用自定义UITableViewCell中定义的委托方法。@Jason将
cell.cellDelegate=self
添加到
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
functionHi Prashant您是否有关于此方法的链接或更多信息?跟踪点击按钮的单元格的最佳方法是什么?我使用的是xib,但按钮点击事件仅对第一个单元格触发..对其他单元格不触发..有人能说出此方法的错误吗?您无法找出未点击的单元格吗导航发件人的视图层次结构,因此这不是正确的方法。而是使用委托。
- (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];
}
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     [cell. picButton addTarget:self 
                         action:@selector(getPhoto)
               forControlEvents:UIControlEventTouchUpInside];
    // ... 
}