2

Cancelメニューにボタンがあり、タッチすると「」と「」の2つのボタンでアラートメッセージがポップアップ表示されますYes。これは私がアラートのために持っているコードです:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Exit game"
                                                message:@"Are you sure?"
                                               delegate:nil
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"Yes", nil];
[alert show];

ボタン「Yes」にアクションを追加することはできますか?

4

3 に答える 3

11

コードでUIAlertViewデリゲートを設定します。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Exit game" message:@"Are you sure?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Yes", nil]; [alert show];

デリゲートをselfに設定したので、以下に示すように、同じクラスにデリゲート関数を記述します。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 1) { // Set buttonIndex == 0 to handel "Ok"/"Yes" button response
    // Cancel button response
    }}
于 2013-02-02T18:04:33.360 に答える
1

を実装する必要がありますUIAlertViewDelegate

そして、以下を追加します...

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 1) {
        // do stuff
    }
}
于 2013-02-02T17:54:46.117 に答える
0

はい、簡単です。現在nilに設定している「デリゲート」と呼ばれる引数を参照してください。これをオブジェクトに設定します...ビューコントローラから呼び出す場合は通常「自己」にしてから、UIAlertViewDelegateのセレクタを実装します。

また、ViewControllerがUIAlertViewDelegateプロトコルに準拠していることを宣言する必要があります。これを行うのに適した場所は、ViewControllerの「プライベート」継続クラスです。

@interface MyViewController() <UIAlertViewDelegate>
@end

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   NSLog(@"Button pushed: %d", buttonIndex);
}
于 2013-02-02T18:00:36.767 に答える