我有一个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我在ClaimViewController.m中定义了委托:
- (void) claimConfirmedDelegate:(NSInteger)tag{
NSLog(@"Delegate called");
}我按以下方式调用ConfirmClaimViewController (它是一个弹出窗口):
ConfirmClaimControllerViewController *confirmClaimController=[[ConfirmClaimControllerViewController alloc] initWithNibName:@"ConfirmClaim" bundle:nil withTag:sender.view.tag];
confirmClaimController.delegate = self;
[self.view addSubview:confirmClaimController.view];
[confirmClaimController didMoveToParentViewController:self];
[self addChildViewController:confirmClaimController];弹出式窗口有两个按钮。其中一个按钮被单击,此代码称为:
if([self.delegate respondsToSelector:@selector(claimConfirmed:)])
{
[self.delegate claimConfirmedDelegate:self.tagId];
}
[self.view removeFromSuperview];
[self removeFromParentViewController];这应该是调用委托方法,然后将子对象从视图中删除。子对象被移除,但从来不调用委托。我是新手,任何帮助都将不胜感激。
发布于 2014-01-13 07:51:23
这一行:
if([self.delegate respondsToSelector:@selector(claimConfirmed:)])应:
if([self.delegate respondsToSelector:@selector(claimConfirmedDelegate:)])https://stackoverflow.com/questions/21086187
复制相似问题