-1

クラス名viewControllerがあり、以下のコードがあり、正常に動作します。ただし、サブクラス コントローラーから check を呼び出すと、希望どおりに動作しません。UIAlertView表示されますが、ボタン インデックス 0 がいつタッチされたかを検出できません。

    -(void)check{
         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!"
                                                message:@"Play Again?"
                                               delegate:self
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:@"OK", nil];
    [alert show];

    }

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
          if (buttonIndex == 0) {     // and they clicked OK.
                      ViewController*myNewVC = [[ViewController alloc] init];
                      [self presentModalViewController:myNewVC animated:NO];
          }
      }
4

4 に答える 4

0

キャンセルボタンは使用しないでください。2 つのボタンotherButtonTitlesを使用し、ボタン index == 1 とボタン index == 2 を使用します。それは役立つかもしれません。

于 2013-07-08T11:42:01.023 に答える
0

delegateをサブクラスに設定する必要があります。

 -(void)check:(id)delegate{
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!"
                                            message:@"Play Again?"
                                           delegate:delegate
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:@"OK", nil];
[alert show];

}

そしてあなたはそれを呼ぶ[self check:self];

于 2013-07-08T11:49:55.497 に答える
0

[キャンセル] ボタンはインデックス "0" になりindex==1ます。

次の方法を使用します。

-(void)check{
         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!"
                                                message:@"Play Again?"
                                               delegate:self
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:@"PopUp", nil];
    [alert show];

    }

    - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
           if (buttonIndex == 0) {     
                     NSLog("Cancel Button clicked);
          }
        else if (buttonIndex == 1)  {
             ViewController*myNewVC = [[ViewController alloc] init];
            [self presentModalViewController:myNewVC animated:NO];
        }
于 2013-07-08T11:29:09.433 に答える