2012-03-30 114 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。

祝你好运。