2010-03-19 6 views
7

내 응용 프로그램에서 거의 모든 것을 수행하는 뷰가 있습니다. 그러나 문제는 5 개 또는 6 개의 다른 대표를 구현하는 것인데, 이는 약간 지저분 해 보입니다.여러 대의 대리인을 처리하는 방법

제 질문은보기 컨트롤러가 모든 대리자를 구현해야합니까? 또는 코드를 다른 파일로 분리 할 수있는 방법이 있습니까 (주요 구조 변경이나 재 작성을하지 않고)?

@interface MyView : UIViewController <UIScrollViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIActionSheetDelegate, MFMailComposeViewControllerDelegate> 

답변

12

없음 문제 :

여기 모든 대표 제가 구현하고 있습니다입니다. 해결책은 Objective-C 범주입니다. 별도의 소스 파일이 넣을 수 있습니다 :

#import "MyView.h" 
@implementation MyView (UIScrollViewDelegate) 
// scroll view delegate method implementations go here 
@end 

좋은 규칙은 "MYVIEW + UIScrollViewDelegate.m"이 파일 이름을 지정하는 것입니다. 여기서 정의하는 메소드는 "MyView.m"에 정의 된 것처럼 작동합니다.

프로토콜의 이름과 일치하는 카테고리 이름이 필요하지 않습니다. 모든 메소드 세트로이를 수행하고 원하는 카테고리 이름을 사용할 수 있습니다.

+0

쿨하겠습니다. 감사합니다. –

+0

내 코드를 정리하는 데 관심이 있습니다. "MyView + UIScrollViewDelegate.h"도 필요합니까? 그렇다면 어떻게 생겼습니까? – tiguero

관련 문제