Pause-code-Ausführung bis uialertview-Objekt-button gedrückt wird?

Einer meiner Methoden, sendet eine Nachricht an ein Objekt (was wissen Sie über dass), und erwartet einen BOOL für eine Antwort. Allerdings BOOL Antwort, die es erwartet wird, ist auf der Grundlage der Antwort auf eine uialertview-Objekt erstellt, in das empfangende Objekt die Methode. Allerdings ist der code nicht anhalten, während der Wartezeit für den Benutzer zu beantworten, die uialertview-Objekt. Mein problem ist: wie benutze ich -alertView:clickedButtonAtIndex in Rückgabewerts der Methode?

Hier ist der code, der die Nachricht läuft (in diesem Bau, ich hatte erwartet, navigateAwayFromTab zu ändern, auf der Grundlage der Benutzereingabe in die uialertview-Objekt, aber es wird nie eine chance):

- (BOOL)readyToNavigateAwayFromTab {
    NSLog( @"message received by Medical View");
    navigateAwayFromTab = NO;
    UIAlertView *alert = [[UIAlertView alloc]
           initWithTitle:@"Navigate Away From Tab?"
                 message:@"Navigating away from this tab will save your work."
                delegate:self
       cancelButtonTitle:@"Cancel"
       otherButtonTitles:@"OK", nil
    ];
    [alert show];
    [alert release];
    return navigateAwayFromTab;
}
#define CANCEL 0
#define OK 1
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if( buttonIndex == OK ) navigateAwayFromTab = YES;
}

Ich gelesen habe bis auf den modal uialertview-Objekt-Debatte, und ich Stimme mit apples Umsetzung - zumindest als die Regel. Aber in diesem Fall sehe ich keine Möglichkeit, lösen das problem, indem Sie code in -alertView:clickedButtonAtIndex, weil ich nicht brauchen, um code auszuführen, basierend auf der uialertview-Objekt, ich muss nur die Antwort Lesen. Irgendwelche Vorschläge, wie kann ich erreichen, mein Gefängnis? Ich habe versucht, eine while-Schleife nach [alert show] schon, aber dann die Warnung gar nicht zeigen, dann, und für eine Reihe von Gründen, die ich nicht benutzen kann -viewWillDisapear.

Bearbeiten

Für diejenigen Leser, diese Frage in den modernen ios-ära, diese Frage bezogen sich auf ios 2

InformationsquelleAutor JoBu1324 | 2009-09-03
Schreibe einen Kommentar