0

私のiOSアプリには、単一のViewControllerに13個のボタンがあります。それぞれをクリックすると、ポップオーバーコントローラーが開きます。一度にすべてではありません。アップルのルール、私は知っています。選択したボタンをクリックしてから、それを閉じて他のボタンに対して実行し、続行します。今、私はポップオーバーでどのオプションを選択したかを教えてくれる代理人がいます。Button1 popovervalues-(1,2,3)Button2 popovervalues-(a、b、c)のように、デリゲートのメソッドは、1が選択されたかaが選択されたことを示します。しかし、Button1がクリックされたかbutton2がクリックされたかはわかりません。ボタンコントロール名を取得する方法を知りたい/または今のところボタンだけで十分です。どのボタンがクリックされたかを知ることができるプロパティはありますか?popovercontrollerのcontentviewcontroller、inputview、navigationcontrollerなどを見ましたが、どちらもクリックされたボタンにたどり着くのに役立ちません。Button1のポップオーバーでオプション1が選択された場合、Button10を無効にする必要があるためです。したがって、どのボタンが選択されたかを知ることで、ユーザーの選択が簡単になります(実際にはその要件です)。さらに情報が必要な場合はお知らせください。ありがとう..

4

2 に答える 2

0

インターフェイスビルダーを介してボタンを接続していますか?その場合は、IBActionメソッドを介して接続する必要があります。

- (IBAction)someAction:(id)sender {
   UIButton *buttonPressed = (UIButton *)sender;
   //Now you have the button you have pressed
}

プログラムでボタンを作成し、それにターゲットを追加した場合は、セレクタービットのsomeActionの後にコロンを付けてください。

[myButton addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventTouchDragInside];

IBActionで以前と同じメソッドを使用することも、独自のvoidメソッドを作成することもできます。どちらの方法でも、送信者はボタンであり、キャストして使用するだけです。

お役に立てれば。

于 2012-11-01T14:52:00.413 に答える
0

ボタンのタグ値を使用します。数値を設定し、アクション メソッドで確認します。

- (IBAction)buttonAction:(id)sender {
   UIButton *buttonPressed = (UIButton *)sender;
   if(buttonPressed.tag == 1) {
        //Do this
   }
}
于 2012-11-01T14:55:13.770 に答える