당신은 클래스에 UI 제어를 구현할 수, 다음 클래스가이 UI에서 알림을 받게됩니다 :이 허용 대답에 대한 업데이트로
, 나는 여기에 내 자신의 멀티 캐스팅 위임 구현을 생성 , 다른 클래스에 메시지를 보낼 수 있습니다 (동일한 델리게이트 기술을 사용하여 - 퍼스트 클래스에서 델리게이트 속성을 구현 한 다음, 두 번째 클래스에서 1 차 클래스의 델리게이트 메소드를 구현합니다). 예를 들어,의 UITextField 방법 -textFieldDidEndEditing 님
제 클래스 -
1) 구현 프로토콜 :
@protocol TextControllerDelegate <NSObject>
@optional // Delegate protocols
- (void)textFieldDidEndEditing:(UITextField *)textField;
@end
2) @property (nonatomic, unsafe_unretained, readwrite) id <TextControllerDelegate> delegate;
3) 방법 - (void)textFieldDidEndEditing:(UITextField *)textField
클래스 안쪽 , 전화 [delegate textFieldDidEndEditing:textField]
두 번째 클래스에서 :
1) 퍼스트 클래스의 객체를 구현하고 대리자를 셀프 (두 번째 클래스)로 설정합니다.
2) 구현 방법 - 멀티 캐스팅을 지원하는 (void)textFieldDidEndEditing:(UITextField *)textField
감사 :
여기 구현을 참조하십시오. 나는 이것을 사용하여 필요한 것을 만들 수 있다고 생각한다. – ColinECollin의 예에서 누락 된 사항은 다음과 같습니다. signature = [NSMethodSignature signatureWithObjCTypes : "@^v^c"]; to (NSMethodSignature *) methodSignatureForSelector : (SEL) aSelector 메서드입니다. – iosDeveloper