iPhone - Entlassen des vorherigen ModalViewControlleranimated: Ja, dann ein neues ModalViewControlleranimated: Ja - Fehler

StackOverflow https://stackoverflow.com/questions/4788131

Frage

Ich habe ein Hauptfenster, das einen Modal View Controller aufnimmt. Wenn er in diesem Modal View Controller ausgeführt wird, kehrt er zum Hauptfenster zurück und entlässt sich selbst. Anschließend ist das Hauptfenster einen neuen Modal View Controller mit animated = yes.

Das Problem ist, dass der Entlassungsaufruf, der im ersten ModalViewController durchgeführt wird, für beide gilt und der SecondController nie angezeigt wird.

Wenn Sie die erste Entlassung vor oder nach dem übergeordneten Anruf einsetzen, ändert sich nichts. Wenn die erste Entlassung mit animate = nein festgelegt wird, funktioniert alles einwandfrei. Aber ich brauche die Animation.

Main.m

- (void) entry {

    FirstController *nextWindow = [[FirstController alloc] initWithNibName:@"theNIB" bundle:nil];

    nextWindow.caller = self;

    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];

    [self.navigationController presentModalViewController:navController animated:YES];

    [nextWindow release];
    [navController release];
}


- (void) thingsDoneInFirstModalController:(OBJECT)returnValue retval2:(OBJECT2)returnValue2 {
    [self display2ndController];
}

- (void) display2ndController {

    SecondController *nextWindow;

    nextWindow = [[SecondController alloc] initWithNibName:@"NIB2" bundle:nil];

    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
    [self.navigationController presentModalViewController:navController animated:YES];
    [navController release];
    [nextWindow release];
}

1st ModalViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    [self.navigationController dismissModalViewControllerAnimated:YES];
    [self.caller thingsDoneInFirstModalController:theResult retval2:someMoreResult];
}

Was darf ich tun? Ich möchte nichts im Blick aufsehen .... Disapear ...

Warum entlassen die Colides, wie sie nicht von demselben Navigationscontroller genannt werden?

War es hilfreich?

Lösung

Der Grund ist wahrscheinlich die Animation, wenn Sie sie entlassen. Versuchen Sie das zweite Modalfenster mit der performSelector:withObject:afterDelay:, eine Methode von geerbt von NSObject. Bezug hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top