2012-02-26 6 views
0

대리인을 설정할 수없는 이유가 없습니다. 두보기간에 전환하려면 UINavigationController 사용하고 있습니다. 여기에 내 코드대리인 문제

SecondViewProtocol.h

#import <Foundation/Foundation.h> 

@protocol SecondViewProtocol <NSObject> 
    @required 
    -(void)textFieldDidChange:(NSString *)data; 
@end 

SecondView.h

#import <UIKit/UIKit.h> 
#import "SecondViewProtocol.h" 
@interface SecondView : UIViewController 

@property (nonatomic, retain) id<SecondViewProtocol>delegate; 
@end 

SecondView.m

내가 FirstView.h에 SecondViewProtocol.h을 가져온
@synthesize delegate = _delegate; 
....... 

-(IBAction)textFieldReturn:(id)sender 
{ 
    [[self delegate] textFieldDidChange:[self.textField text]]; 
} 

....... 

입니다

FirstView.m

.... 
SecondView *secondView = [[SecondView alloc]init]; 
secondView.delegate = self; 
.... 

여기에서 호환되지 않는 유형의 FirtView에서 ID를 할당받습니다.

무엇이 잘못 되었나요?

답변

1

우선 대리인 속성은 assign이 아니라 retain으로 선언되어야합니다. 대의원은 절대 지켜서는 안됩니다. 둘째, FirstView은 다음과 같이 SecondViewProtocol을 준수해야합니다.

@interface FirstView: UIViewController <SecondViewProtocol>