3

iOSアプリケーションでのイベント処理について簡単な質問があります...同じアクションを呼び出すTouchUpInsideイベントに反応するいくつかのボタンを備えたアプリがあるとします。アクションメソッド内で、トリガーされたボタンを理解するための最良の方法は何ですか。行事?ボタンのタイトルを使用して簡単に実行できることは知っていますが、ボタンのテキストが変更される可能性のあるローカライズされたアプリがある場合は、最善の方法ではないと思います(タイトルのローカライズを逆にすることができない場合、つまりローカライズされた文字列から元の文字列を取得します)...このトピックに関する良い習慣はありますか?異なるボタンを区別するために、ボタンの他​​のプロパティを使用する必要がありますか?

よろしくお願いします。

4

2 に答える 2

9

UIButtonに設定できる「タグ」と呼ばれるもの、またはその問題のイベントに応答できるものがあります。Interface Builderを使用している場合は、アイテムの属性インスペクターをクリックして、タグの値(整数)を選択します。あなたのコードでこのようなことをしてください...

..。

- (IBAction)buttonReceived:(id)sender
{ 
    if ([sender tag] == 1) {
       //Do something
    }
    else if ([sender tag] == 2) {
       //Do something else
    }
}
于 2011-10-15T20:36:41.873 に答える
3

タグプロパティに加えて、または1つ以上の異なるボタンのタグ値が重複することを意味する他の目的ですでにタグを使用している場合は、チェックする必要のある各ボタンにIBOutletivarをいつでも設定できます。次に、IBActionで、次のようにします。

- (IBAction)buttonReceived:(UIButton *)sender
{ 
    if (sender == myButtonA) {
       // processing for button A
    }
    else if (sender == myButtonB) {
       // processing for button B
    }
}

もう少し手間がかかりますが、便利な場合もあります。

于 2011-10-15T20:44:15.923 に答える