2012-03-26 10 views
2

UIAlertViewのインスタンスを2つのボタンで作成し、クラス(.h)のインターフェイスファイルにデリゲートを設定しましたが、ボタンをクリックしても応答が得られません。ここに私のコードは次のとおりです。UIAlertViewデリゲートメソッドがiOS 5.1で応答しない

//myClass.h 
    @interface MainMenu : UIViewController<UIAlertViewDelegate> 
-(IBAction)secondAct:(id)sender; 

と実装

-(IBAction)secondAct:(id)sender 
     alert = [[UIAlertView alloc] initWithTitle:@"Dear User" 
                 message:@"Your Request Will be Sent To Security" 
                 delegate:nil 
               cancelButtonTitle:@"Cancel" 
               otherButtonTitles:@"OK", nil]; 
    [alert show]; 
    [alert autorelease]; 
} 

とデリゲートメソッド:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
NSLog(@"UIAlertView delegate works");//this line too isnt displayed 
NSString *title=[ alertView buttonTitleAtIndex:buttonIndex ]; 
if ([title isEqualToString:@"OK"]) { 
NSLog(@"OK Pressed"); 
}//i want to create something like this 

} 私は上記のコードのすべてをしましたが、それでもいずれかを取ることができませんアクション。どのボタンをクリックしても、警告が消されます。このコードの何が間違っていますか? ANSWER

親愛なるPeterG.delegate:selfdelegete:nilを変更するにはコメントし、それが機能するようになりました。

+3

代理人:nilは機能しません...代理人に変更してください:自己 –

+0

私はこれまでに試してみました。エラー番号 – ilhnctn

+0

@ PeterGが返されました。申し訳ありませんが、それは働いた – ilhnctn

答えて

2

代理人は、おそらく自己に設定する必要があります。エラーが発生した場合は、ここに投稿してください。

また、警告アラートを自動解除する必要はありません。その行をスキップして何が起こるかを見てみましょうか?

+0

ああ、あなたはすでにそれを働いている:P – Sunkas

+0

編集で私はそれについて述べた。ありがとう兄貴:) – ilhnctn

0

デリゲートを「自己」にします。

-(IBAction)secondAct:(id)sender 
     alert = [[UIAlertView alloc] initWithTitle:@"Dear User" 
                 message:@"Your Request Will be Sent To Security" 
                 delegate:self 
               cancelButtonTitle:@"Cancel" 
               otherButtonTitles:@"OK", nil]; 
    [alert show]; 
} 
関連する問題