2014-03-19 107 views
-2

我代表:爲什麼委託不起作用?

@class UpdateUserSummary; 
@protocol UpdateSummaryDelegate <NSObject> 

- (void)updateSummaryDidCancel:(UpdateUserSummary*)controller; 
- (void)updateSummaryDone:(UpdateUserSummary*)controller; 

@end 

的界面:從委託

@interface UpdateUserSummary : UIViewController 
@property (nonatomic, weak) id<UpdateSummaryDelegate> delegate; 
@end 


- (IBAction)done:(id)sender { 
    [self.delegate updateSummaryDidCancel:self]; 
} 

響應:

-(void)updateSummaryDidCancel:(UpdateUserSummary *)controller 
{ 
    // just close modal vc 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
+1

你需要明確你的問題到底是什麼,你發佈的代碼並不能解釋它。 – Volker

+0

你有沒有設置UpdateUserSummary.delegate = self @你的類實現UpdateSummaryDelegate協議? –

+0

是的,在以前它工作正常,當我添加新的視圖控制器我得到了這個問題,但我撤消了我所做的一切,但沒有做任何事 –

回答

1
@protocol MUpdateSummaryDelegate; 

@interface MUpdateSummary : NSObject 

@property (assign) id<UpdateSummaryDelegate> delegate; //You need this 

@end 


@protocol UpdateSummaryDelegate <NSObject> 

-(void)updateSummaryDidCancel:(UpdateUserSummary *)controller; 

@end 

在你調用委託類,你需要設置代理。

MUpdateSummary *mUpdateSummary = [[MUpdateSummary alloc] init]; 
mUpdateSummary.delegate = self; 
+0

這是你的意思嗎? 接口UpdateUserSummary:UIViewController @property(nonatomic,weak)id delegate;結束 - (IBAction)done:(id)sender {[self.delegate updateSummaryDidCancel:self]; } –

+0

是的!這是我的意思。 – crzyonez777

+0

確保在調用委託方法的類中設置委託屬性。 「mUpdateSummary.delegate = self;」 – crzyonez777

2

使用此, UpdateUserSummary.delegate =自我; 你正在調用你實現類中的委託。

+0

這是你的意思? (IBAction)done:(id)sender {self.delegate updateSummaryDidCancel:self];(self_delegate updateSummaryDidCancel:self]; } –

+0

我認爲你得到了解決方案。 –

+0

否:(仍然沒有迴應 –

相關問題