6

次のコードを使用して、2 つのボタンを持つアラート ビューを作成しました。

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle: title 
message: msg delegate:nil cancelButtonTitle:@"Replay" otherButtonTitles:@"Highscore", nil];
[alertView show];

ボタンの 1 つがクリックされたときにコードを実行したいと考えています。そのために、delegate.m ファイルに次のメソッドを追加しました。

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
 if (buttonIndex==0) //Run some code 
 else //Other code
 }

しかし、どちらのボタンを押しても、このメソッドは呼び出されません! 誰かが理由を教えてもらえますか?

前もって感謝します、

サギフトウ

4

5 に答える 5

40
delegate:nil

デリゲートが存在しないと指定した場合、アラート ビューはどのようにデリゲートを関連付けますか? その部分を

delegate:self

代わりは。

于 2010-03-29T13:02:56.753 に答える
3

デリゲートを nil ではなく self に設定してみてください。

于 2010-03-29T13:02:19.140 に答える
0

.h で UIActionSheetDelegate を配置し、.m で alertView の作成中にデリゲートを self ではなく、上記の場合のように nil に配置します

于 2012-11-07T05:04:06.990 に答える