2012-03-27 3 views
0

여러 UIViewController에서 사용하는 프로토콜 집합이 있습니다. 프로토콜이 설정되었을 때 모두 실행되는 기본 코드를 설정하는 방법이 있습니까? 또한 UIViewController 라이프 사이클처럼 작동하도록하는 방법이 있습니까? 예를 들어 UIViewController가로드 할 때 그렇습니다.프로토콜 설정 및 라이프 사이클로드

- (void)viewWillLoad; 
- (void(viewDidLoad; 
- (void)viewWillAppear:(BOOL)animated; 
- (void)viewDidAppear:(BOOL)anmated; 

답변

1

것은 속성이 설정되면 실행 코드를 얻으려면 (나는 당신이 무엇을 의미 같은데요?) 당신이 행동하는 모든 뷰 컨트롤러를 원한다면 당신은 그냥 합성 된 setter 메소드

@synthesize value = _value; 

- (void)setMyProperty:(id <MyProtocol>)value { 
    if (value != value) { 
     _value = value; 

     // Insert your code here 
     ... 
    } 
} 

을 대체 할 수 있습니다 같은 방법으로 그들은 당신의 UIViewController의 공통 서브 클래스 즉

@interface AbstractViewController : UIViewController { 
... 
} 

하고, 모든 '진짜'뷰 컨트롤러의 UIViewController에서 직접적으로, 그 상속 것을 제공 할 수있다 : 당신이 모든 당신의 진짜 뷰 컨트롤러는 무료로 그 기능을 얻을 것이다 추상보기 컨트롤러에 귀하의 재산 (및 재정의 된 setter 메소드)를 추가 한 경우

@interface MainViewController : AbstractViewController { ... } 

@interface DetailsViewController : AbstractViewController { ... } 

.

도움이 되었기를 바랍니다. 그렇지 않은 경우 질문에 정보를 추가하면 다시 시도 할 수 있습니다.

+0

아니요. – Popeye