2014-03-19 9 views
-2

내 대표 : 대표에서왜 대리인이 작동하지 않습니까?

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


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

응답 : 인터페이스에서

@class UpdateUserSummary; 
@protocol UpdateSummaryDelegate <NSObject> 

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

@end 

당신이 대리자를 호출하는 클래스에서

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

정확히 무엇이 문제인지 명확하게 밝혀야합니다. 게시 한 코드는 문제를 설명하지 않습니다. – Volker

+0

UpdateSummaryDelegate 프로토콜을 구현하는 UpdateUserSummary.delegate = self @ 클래스를 설정 했습니까? –

+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 (비 원자력, 약한) ID 위임자; end - (IBAction) 완료 : (id) 보낸 사람 {[self.delegate updateSummaryDidCancel : self]; } –

+0

예! 그것은 내가 의미했던 것입니다. – crzyonez777

+0

대리자 메서드를 호출하는 클래스에서 대리자 속성을 설정해야합니다. "mUpdateSummary.delegate = self;" – crzyonez777

2

사용이, UpdateUserSummary.delegate = 자기; 구현 클래스에서 대리자를 호출하는 곳입니다.

+0

이것이 무엇을 의미합니까? - (IBAction) done : (id) 보낸 사람 { [self.delegate updateSummaryDidCancel : self]; } –

+0

해결책이 있다고 생각합니다. –

+0

아니오 :(아직 응답 없음 –

관련 문제