2

メールを送信するiPhoneアプリがあります。「To:」アドレスが設定されていない場合は、アラート (UIAlertView) を表示します。現時点では、ユーザーが OK をタップしたかどうかは確認していません。:D

アラートで [OK] をタップすると、次のエラーが表示されます。

wait_fences: 応答を受信できませんでした: 10004003

OKのタップを処理せず、アプリが他のことをしているときにまだ表示されているためだと思います。したがって、SO と Google でいくつかの調査を行った後、私はこれを持っている必要があるようです:

- (void) Alert: (NSString *) title andData: (NSString *) errorMsg  {

    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle: title
                          message: errorMsg 
                          delegate:nil
                          cancelButtonTitle: @"OK"
                          otherButtonTitles: nil];
    [alert show];


    return;

}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    NSLog(@"button was pressed");
}

私の問題は、このデリゲートを設定する方法がわからないことです。私はすでに代理人を持っています:

@interface ReportViewController : UIViewController <UIWebViewDelegate>  {

OKボタンのタップが処理されるようにデリゲートを設定して、エラーを取り除くにはどうすればよいですか?

4

2 に答える 2

4

山かっこ内に、プロトコルのコンマ区切りリストを指定できます。

@interface ReportViewController : UIViewController <UIWebViewDelegate, UIAlertViewDelegate>  {

これで、両方のメソッドセットを実装できます。また、アラートビューのデリゲートをに設定することを忘れないでくださいself

于 2012-10-31T21:52:56.413 に答える
1

'delegate:nil'質問のコードによると、デリゲートは nil のように見えます。に変更する必要があります'delegate:self'

于 2012-10-31T23:40:33.617 に答える