未调用委托方法:IOS 6

未调用委托方法:IOS 6,ios,iphone,objective-c,Ios,Iphone,Objective C,我有一个ConfirmClaimViewcontroller.h,它将委托定义为: @protocol ClaimConfirmedDelegate<NSObject> @required - (void) claimConfirmedDelegate : (NSInteger) tag; @end @interface ConfirmClaimControllerViewController : UIViewController{ id <ClaimConfirme

我有一个
ConfirmClaimViewcontroller.h
,它将委托定义为:

@protocol ClaimConfirmedDelegate<NSObject>
@required
- (void) claimConfirmedDelegate : (NSInteger) tag;
@end

@interface ConfirmClaimControllerViewController : UIViewController{
    id <ClaimConfirmedDelegate> delegate;
}

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withTag:(NSInteger)tag;

@property(nonatomic,assign)id delegate;

@end
我调用
ConfirmClaimViewController
如下(它是一个弹出窗口):

弹出窗口有两个按钮。单击其中一个按钮时,此代码称为:

if([self.delegate respondsToSelector:@selector(claimConfirmed:)])
{
    [self.delegate claimConfirmedDelegate:self.tagId];
}


[self.view removeFromSuperview];
[self removeFromParentViewController];
这应该调用委托方法,然后从视图中删除子对象。子项被删除,但从未调用委托。我不熟悉这一点,如有任何帮助,将不胜感激。

此行:

if([self.delegate respondsToSelector:@selector(claimConfirmed:)])
应该是:

if([self.delegate respondsToSelector:@selector(claimConfirmedDelegate:)])

检查委托是否为非零。大多数时候,编程人员忘记设置委托。
if([self.delegate respondsToSelector:@selector(claimConfirmed:)])
if([self.delegate respondsToSelector:@selector(claimConfirmedDelegate:)])