In my app (flashcard app) I use this code:
FlashCardFlipVC * flipvc = [[FlashCardFlipVC alloc] initWithFlashCardData:_card];
flipvc.navigationItem.title = self.navigationItem.title;
[UIView beginAnimations:@"ShowAnswers" context: nil];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController: flipvc animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
[flipvc release];
It sets different than normal animation pattern (curl up instead of slide) and different time setting. You can use your own of course.