2013-06-29 7 views
20

私はUIViewをサブクラス化することによって、カスタムピッカービューコントロールのタイプを作成しました。私は "UIControlEventValueChanged"このコントロール内からコントロールイベントを送信できるようにしたいので、コントロールを使用しているビューコントローラーのいずれにでも登録することができます。カスタムコントロールから「UIControlEventValueChanged」イベントを送信するにはどうすればよいですか?

トリガーする必要があると判断した場合、このイベントを発生させるカスタムコントロールを取得するにはどうすればよいですか?カスタムコントロールを想定し

+0

このイベントが発生したことをaddTarget:action:forControlEvents:経由で登録されているすべてのターゲットを(電話またはNSNotificationCenter経由しますが移動するための方法でありますこの場合は個人的にプロトコルを選択してください。http://iosdevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html – Groot

答えて

46

は、あなたが簡単に行う、UIControlを拡張します。

[self sendActionsForControlEvents:UIControlEventValueChanged]; 

これはプロトコル

+0

UIControlがUIViewを拡張して以来、すべてのコントロールがUIViewを継承しています。私は単純にすべてのコントロールを、UIControlのサブクラス化をt他に何か変わる? – cgossain

+3

カスタムコントロールは常に 'UIControl'を拡張する必要があります。これにより、そのクラスのすべての利点が得られます。 'UIControl'を拡張するためにクラスを変更したら、あなたがしなければならないかもしれない唯一のことは、あなたが' UIView'から取得していなかった 'UIControl'から無料で取得するコードを取り除くことです。 – rmaddy

+0

パーフェクト。ありがとうございました。あなたの答えはまさに、探していたものでした。 – cgossain

関連する問題