Marcus Zarra posté une excellente solution pour cela sur la liste de diffusion du SDK:
UIViewController *controller = [[[MyViewController alloc] init] autorelease];
UIViewAnimationTransition trans = UIViewAnimationTransitionCurlUp;
[UIView beginAnimations: nil context: nil];
[UIView setAnimationTransition: trans forView: [self window] cache: YES];
[navController presentModalViewController: controller animated: NO];
[UIView commitAnimations];
Il y a des transitions pour les retournements et page-curling. Si vous définissez sur la décoloration, peut essayer d'ajuster votre nouvelle vue alpha:
UIViewController *controller = [[[MyViewController alloc] init] autorelease];
controller.view.alpha = 0.0;
[navController presentModalViewController: controller animated: NO];
[UIView beginAnimations: nil context: nil];
controller.view.alpha = 1.0;
[UIView commitAnimations];
Cependant, ce que vous voulez sans doute est un fondu enchaîné, ou tout au moins un fondu sur. Lorsque UINavigationController bascule vers une nouvelle vue, il supprime l'ancien. Pour cet effet, vous feriez probablement mieux d'ajouter une nouvelle vue à votre UIViewController existant et de faire disparaître son alpha au fil du temps.
Remarque: Si vous n'êtes pas dans votre application, le délégué [auto-window] ne fonctionnera pas. Utilisez self.view.window, grâce à la publication de user412500 pour le signaler.
C'est vieux! Voir la réponse de Simo Salminen ci-dessous! MrDatabase vous devriez changer ce –