読者です 読者をやめる 読者になる 読者になる

49hack

見習いエンジニアが魔法使いになるまで

Tagを用いて複数のUIAlertViewを処理する

objective-c

複数のUIAlertViewを使う場合、buttonIndexのみではアクション処理がバッティングしてしまうので、Tagを使って場合分けをします。

//アラート画面のタグを宣言
static const NSInteger firstAlertTag = 1;
static const NSInteger secondAlertTag = 2;
 
//アラートを作るときにタグを設定
    UIAlertView *firstAlert = [[UIAlertView alloc]
                          initWithTitle:nil
                          message:@"This is firstAlert"
                          delegate:self
                          cancelButtonTitle:@"OK"
                          otherButtonTitles:nil];
    firstAlert.tag = firstAlertTag;
...
    UIAlertView *secondAlert = [[UIAlertView alloc]
                          initWithTitle:nil
                          message:@"This is secondAlert"
                          delegate:self
                          cancelButtonTitle:@"OK"
                          otherButtonTitles:nil];
    secondAlert.tag = secondAlertTag;
...
 
//アラートのボタンが押されたときに呼ばれるデリゲーションメソッド
- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    //タグをチェック
    if (alertView.tag == firstAlertTag)  {
        処理....
    }else if (alertView.tag == secondAlertTag)  {
        処理....
}

参考