2010-12-03 6 views
11

私はUIAlertViewDelegateを実装するコントローラを持っています。実装で私は持っています:UIAlertViewDelegate以上のアラートウィンドウ

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

メソッド。私はUIAlertViewを作成するときに 'delegate'を 'self'に置き、うまく動作します。しかし、問題は、今私はもうひとつ注意深い見解を持っており、私はそれぞれに異なる行動が必要だということです。どのalertViewがメッセージを送信するかを確認する方法は?

答えて

12

UIAlertViewはのUIView subsclassですので、あなたがそれらを区別するために使用できるタグのプロパティがあります。

UIAlertView *alert1 = ... //Create alert 
alert1.tag = kActionTag1; 
//show alert 

... 

UIAlertView *alert2 = ... //Create alert 
alert2.tag = kActionTag2; 
//show alert 

をそしてデリゲートメソッドで:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if (alertView.tag == kActionTag1){ 
      // Perform 1st action 
    } 
    if (alertView.tag == kActionTag1){ 
      // Perform 2nd action 
    } 
} 
+0

ありがとう、それは多くの助け:) – 1110

0

各特定のアラートビューへのポインタは、デリゲートメソッドのalertViewパラメータで送信されます。あなたは単にポインタを(例えばインスタンス変数を介して)追跡するだけで、どちらがどちらであるかを知ることができます。

0

UIAlertViewガスのタグプロパティを。作成時に設定し、デリゲートのタグを確認できます。