0
我有一個ConfirmClaimViewcontroller.h
其中委託定義爲:委託方法不叫:IOS 6
@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];
這應該調用委託方法,然後從視圖中刪除了孩子。孩子被刪除,但委託從未被調用。我是新來的,任何幫助將不勝感激。
檢查該委託不爲零。 大部分時間,程序員忘記設置代表。 – Raz