ココアとコーディングである(ID)、送信者のいずれかの利点は、私は、それゆえ、次のアクションをIBAction
を定義するとき、それはsender
パラメータを持っている必要はありませんことに気付きましたありますIBAction
- (IBAction)showUserInfo;
アクションを送信したボタン/メニュー項目以外に他にも利点があるのでしょうか?私が考えることができる他の状況は、同じIBActionを呼び出すオブジェクトがほとんどないということだけです。他に何か?
ココアとコーディングである(ID)、送信者のいずれかの利点は、私は、それゆえ、次のアクションをIBAction
を定義するとき、それはsender
パラメータを持っている必要はありませんことに気付きましたありますIBAction
- (IBAction)showUserInfo;
アクションを送信したボタン/メニュー項目以外に他にも利点があるのでしょうか?私が考えることができる他の状況は、同じIBActionを呼び出すオブジェクトがほとんどないということだけです。他に何か?
sender
引数を使用すると、値を変更できるUIオブジェクトにメソッドを接続しているときに作業する必要があります。例えば
sender:
引数として渡されたオブジェクトを使用することができ、
UISegmentedControl
する方法を有線およびそれがUIControlEventValueChangedに制御イベントの設定された場合UIで
-(IBAction)segmentedControlValueChanged:(id)sender
{
UISegmentedControl *control = (UISegmentedControl *)sender;
// Show or hide views depending on the selected index of the segmented control.
if (control.selectedSegmentIndex == 0)
someView.hidden = YES;
else
someView.hidden = NO;
}
Doc(それが実際の送信者で置換され、別のオブジェクトであってもよい)センダパラメータは、通常、アクションメッセージを送信する制御を識別し、
言います。この背後にある考え方は、はがきの返信先住所に似ています。ターゲットは送信者に問い合わせが必要な場合に詳細情報を問い合わせることができます。
送信者パラメータは、データが必要な場合に役立ちます。たとえば、@ Mark Adamsのように、UISegmentControlの値が変更された場合などです。したがって、送信者からの情報を望まない場合は、例の- (IBAction)showUserInfo;
の例のように省略することができます。