複数のアラートビューがある場合に押されたボタンを検出する 質問する

複数のアラートビューがある場合に押されたボタンを検出する 質問する

1 つのビューに複数のアラート ビューがあり、どのボタンが押されたかを検出するために次のコードを使用します。

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

    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];  

    if ([title isEqualToString:@"OK"]) {

          //for one alert view
          [passCode becomeFirstResponder];

     } else if ([title isEqualToString:@" OK "]) {

        //for another alert view, had to change "OK" to " OK "
        [passCodeConfirm becomeFirstResponder];

    }
}   

1 つのビューに複数のアラート ビューがあり、それぞれが異なる処理を実行するため、ユーザーに「OK」と「 OK 」が同じものであると思わせる必要があります。これは機能し、見た目も問題ありませんが、少し乱雑な感じがします。これを特定のアラート ビューに指定してから、別のアラート ビューに指定するなど、別の方法があるはずです。これをどのように行うかご存知ですか? ありがとうございます!

ベストアンサー1

より技術的で、ユニークな設定の方がよいだろう鬼ごっこ別の UIAlertView を作成し、それを識別してそのデリゲート メソッドでアクセスします。

例えば、

    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Message" message:@"Are You Sure you want to Update?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok",nil];
    [alert setTag:1];
    [alert show];
    [alert release];

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex  
    {
        if(alertView.tag == 1)
        {
            // set your logic
        }
    }

おすすめ記事