2012-03-30 15 views
0

Ich verwende ASIHttpRequest in meinem iOS-Projekt. Im requestFail ich so tue:Anfrage fehlgeschlagen in 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]; 

    }  
} 

Nun würde Ich mag meine UIAlertView alle mit einem Imageview ersetzen (zeigt den Benutzer eine spezielle UIImageView um ihm zu sagen, dass es ein Fehler (connexion Ausfall .. ..), und entferne diese imageView, wenn es keinen Serverfehler gibt ..

Resume: Ich möchte ein imageView zeigen, wenn die Anfrage fehlschlägt und diese Bildansicht entfernen und die Anfrage ändern (Wie kann ich das mit ASIHtppRequest machen) ?

Antwort

1

Ich denke, dass Sie ein UIActionSheet verwenden können, um die UIAlertView zu ersetzen, da das ActionSheet wie eine UIView behandelt werden kann, so y Sie können das ActionSheet präsentieren, das Ihre UIImageView enthält. Sie können auch eine der Schaltflächen verwenden, um das ActionSheet zu schließen, um Ihre ASIHTTPRequest neu zu laden. Der folgende Code zeigt die Delegatmethoden des UIActionSheets, mit denen Sie Ihr UIImageView hinzufügen und Ihre Anfrage auslösen können, wenn auf die Schaltfläche zum Abbrechen geklickt wird.

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

Vergessen Sie nicht, das UIActionSheetDelegate in Ihrer .h-Datei zu implementieren.

Viel Glück.

Verwandte Themen