2012-03-01 11 views
2

私は動的に作成したUIActionSheetを持っています。キャンセルボタンを含め、1〜5のボタンをいくつか持つことができます。私はうまく動作するキャンセルボタンを得ることができますが、UIActionSheetに2つのボタンだけを追加する必要があると言うことができます。ボタン2と4は、どのアクションを実行するかを決定する方法を示します。通常、私は何かのようなものを使用します。UIActionSheetのボタンとアクションを動的に変更する

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
      switch(buttonIndex) { 
       case 0: 
         // Do something here. 
         break; 
       case 1: 
         // Do something else here. 
         break; 
       case 2: 
         // Do something else again. 
         break; 
       case 3: 
         // Do something else here again. 
         break; 
       default: 
         break; 
      } 

しかし、私は唯一のケースのみ0、1を使用しようとしてしかし、私は二つのボタンの一つとして、ボタン4を追加した場合、私はまだそれがケース3を使用する動的そこに二つのボタンを追加する場合は、これは可能ですかそれを行う別の方法はありますか?

答えて

6

buttonTitleAtIndex:メソッドを使用して、ボタンのタイトルと照合します。ただし、ボタンのタイトルを1か所で変更すると、コードが壊れないように注意する必要があります。ボタンを作成するときは、各ボタンのタイトルを余分な変数に保存し、この変数を使用して後でボタンのタイトルと比較するのが最善の方法です。

2

UIActionSheetを作成するときは、ボタンインデックスを実行する実際のタスク(アクションの列挙など)にマッピングする別の配列を保持します。

buttonIndexの代わりにtasks[buttonIndex]をオンにします。

+0

これのサンプルコードはありますか? – Popeye

関連する問題