をあなたのクラスであなたのUIコントロールを実装することができ、その後、あなたのクラスは、このUIからの通知を受け取ります別のクラスにメッセージを送ることができます(同じデリゲートテクニックを使用して、ファーストクラスのデリゲートプロパティを実装してから、2番目のクラスは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]
第2クラス:
1)第1クラスのオブジェクトを実装し、代理人を自己(第2クラス)に設定します。
2)を実装する方法 - マルチキャストをサポートするための(void)textFieldDidEndEditing:(UITextField *)textField
ありがとう:
は、ここに実装を参照してください。私はこれを使用して必要なものを作ることができると思う。 – ColinECollinの例では、欠けていることがあります。これを追加する必要があります:signature = [NSMethodSignature signatureWithObjCTypes: "@^v^c"]; (NSMethodSignature *)メソッドのシグネチャForSelector:(SEL)aSelectorメソッド。 – iosDeveloper