2012-03-30 171 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]; 

    }  
} 

現在,我想用一個ImageView的(展現給用戶一個特殊的UIImageView告訴他,有一個錯誤(Connexion的失敗來代替我的所有UIAlertView中.. ..),並刪除這個imageView時,沒有服務器錯誤。

恢復:我想顯示一個imageView時,請求失敗,並刪除此圖像視圖和相關請求(我怎樣才能做到這一點與ASIHtppRequest) ?

回答

1

我想你可以使用UIActionSheet替換UIAlertView,因爲ActionSheet可以像UIView一樣處理,所以y你可以展示包含你的UIImageView的ActionSheet。您也可以使用其中一個按鈕來關閉ActionSheet以重新加載ASIHTTPRequest。 下面的代碼顯示了UIActionSheet的委託方法,它們允許您在單擊取消按鈕時添加您的UIImageView並觸發您的請求。

#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。

祝你好運。