複数のアラートビューで引っかかった。

UIAlertViewの表示 | iPhoneアプリ備忘録でアラートビューについて書いた。

この時はひとつの画面でひとつのアラートだったのでよかったが、複数のアラートを使い分けるときに困った。
アラートを表示するのは良いが、それを受けるほうが、どのアラートから来たか知らせる方法がよくわからなかった。

参考にさせて頂いたサイト。
複数のUIAlertViewでdelegateを使い分ける – しゃの

とりあえず、tagを使うらしい。

#import "ViewController.h"
@interface ViewController ()//<UIAlertViewDelegate>
 
#pragma mark - アラートビュー
 
//アラートを作るときにタグを設定
 UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"タイトル"
                                                    message:@"メッセージ"
                                                   delegate:self
                                          cancelButtonTitle:@"キャンセル"
                                          otherButtonTitles:@"ボタン1",@"ボタン2", nil];
  alert1.tag = 1;//ここでタグを付ける
    [alert1 show];

〜〜
 UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"タイトル"
                                                    message:@"メッセージ"
                                                   delegate:self
                                          cancelButtonTitle:@"キャンセル"
                                          otherButtonTitles: nil];
  alert2.tag = 2;//ここでタグを付ける
    [alert2 show];
〜〜
 
- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    //タグをチェック
    if (alertView.tag == 1)  {
        処理....
    }else if (alertView.tag == 2)  {
        処理....
}

アラートを作った時の変数のタグが、デリゲーションメソッドのタグに引き継がれるのでそれで判別するようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です