在iOS上调用自定义委托方法的问题

时间:2012-01-06 05:33:57

标签: ios objective-c delegates

在我的iPhone应用程序中......

无法调用委托方法...

这是我的代码

我在一个类中创建了一个简单的委托...

@protocol imagecelldelegate

-(BOOL) isIntersects:(CGRect)lastTouch;

@end

@interface ImageDemoGridViewCell : AQGridViewCell
{
    id<imagecelldelegate> delegate; 
}

@property (nonatomic,retain) id delegate;

@end

现在我已在此类的实现中设置了委托,并调用了委托方法。

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self setDelegate:self.superview];

    [delegate isIntersects:originalSelf];
     //Getting error at this point...   

}

之后我在已设置委托的类中实现了该方法..

@interface ViewController : UIViewController<imagecelldelegate>
{

并在这个类中实现了该方法....

-(BOOL) isIntersects:(CGRect)lastTouch
{

    NSLog(@"Delegate Yippee");

    return YES;
}

1 个答案:

答案 0 :(得分:5)

[self setDelegate:self.superview];

这就是问题所在。

您应该将ViewController设置为代理人的参考。

例如,在ImageDemoGridViewCell中分配ViewController后,请按如下方式设置委托。

ImageDemoGridViewCell *cell = [[ImageDemoGridViewCell alloc] initWith..];
cell.delegate = self;

然后将单元格作为子视图添加到ViewController视图。