2012-03-30 18 views
0

iOSプロジェクトでASIHttpRequestを使用しています。 requestFailでは私はこのようなやっている:ASIHttprequestでリクエストが失敗する

#pragma mark Erreur requête de connexion 
- (void)requestFailed:(ASIHTTPRequest *)request 
if([[request error] code] == ASIConnectionFailureErrorType) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion" 
                 message:@"Connexion avec le serveur impossible : vérifiez vos paramètres réseaux." 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 

     [alert show]; 

    } 
    else if ([[request error] code] == ASIRequestTimedOutErrorType) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion" 
                 message:@"La requête a expiré !" 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 

     [alert show]; 

    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion" 
                 message:@"Une erreur inconnue est survenue." 
                 delegate:nil 
               cancelButtonTitle:@"Annuler" 
               otherButtonTitles:nil]; 

     [alert show]; 

    }  
} 

今、私はエラー(コネクションの障害があることを彼に伝えるために、ユーザーに特別なUIImageViewを表示(ImageViewの持つすべての私のUIAlertViewを交換したいと思います..サーバーのエラーが発生していない場合は、このイメージビューを削除してください。

履歴書:リクエストが失敗したときにイメージビューを表示し、このイメージビューを削除してリクエストをリレーします(ASIHtppRequestでこれを行う方法) ?

答えて

1

ActionSheetはUIViewのように処理できるので、UIActionSheetを使用してUIAlertViewを置き換えることができると思いますあなたのUIImageViewを含むActionSheetを表示することができます。ボタンの1つを使用してActionSheetを閉じて、ASIHTTPRequestをリロードすることもできます。 次のコードは、キャンセルボタンがクリックされたときにUIImageViewを追加してリクエストをトリガできるUIActionSheetのデリゲートメソッドを示しています。

#pragma - 
#pragma ActionSheet Delegate 

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet { 

    UIImageView * yourImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 55, 320, 100)]; 

    //Configure yourImageView... 

    //Add picker to action sheet 
    [actionSheet addSubview:yourImageView]; 

    // Release your yourImageView 
    [yourImageView release]; 


} 
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 

    if (buttonIndex != [actionSheet cancelButtonIndex]) 
    { 
     // Call back your ASIHTTPRequest 
    } 
} 

.hファイルにUIActionSheetDelegateを実装することを忘れないでください。

幸運。

関連する問題