iPhone - Rejetant précédent ModalViewController d'animation: OUI popping puis une nouvelle animation ModalViewController: OUI - échec

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

Question

J'ai une fenêtre principale qui apparaît un contrôleur de vue modal. Lorsque vous avez terminé dans ce contrôleur modal de la vue, il retourne à la fenêtre principale se rejette alors. Ensuite, les fenêtres principales pops un nouveau contrôleur de vue Modal avec animation = OUI.

Le problème est que l'appel rejette ce qui se fait à l'intérieur de la première modalviewcontroller applique à la fois et SecondController est jamais montré.

Mettre la première destitués avant ou après l'appel parent ne change rien. Si le premier est fixé wih irrecevabilité Animer = NO, tout fonctionne bien. Mais je dois l'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];
}

1er ModalViewController.m

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

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

Que puis-je faire? Je ne veux pas quoi que ce soit des captures par .... disparaitra ...

Pourquoi le rejeter colides comme ils ne sont pas appelés à partir du même contrôleur de navigation?

Était-ce utile?

La solution

La raison en est probablement l'animation lorsque vous le rejeter. Essayez montrant la seconde fenêtre modale utilisant le performSelector:withObject:afterDelay:, une méthode héritée de NSObject. Référence .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top