ios iphone animation pushviewcontroller presentmodalviewcontroller

ios - Mostrando la animación de pushviewcontroller como presentModalViewController



iphone animation (4)

Deberías considerar hacer algo como:

ViewController *myVC = [[ViewController alloc] initWithFrame:OFF_SCREEN]; [navigationController pushViewController:myVC animated:NO];

donde OFF_SCREEN es un CGRect debajo de la pantalla, como (0, 481, 320, 480). Luego use un bloque de animación para ajustar el frame.origin de la viewcontroller view para que sea (0, 0). Probablemente quieras hacer el bloque animado en viewDidLoad o viewDidAppear.

¿Es posible mostrar la animación de pushViewController como presentModalViewController pero tiene la funcionalidad de fondo de pushViewController ?


Para visualizar la animación de PushViewContributor, ya que el código Presente a continuación está funcionando,

Para empujar

ViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"]; CATransition* transition = [CATransition animation]; transition.duration = 0.4f; transition.type = kCATransitionMoveIn; transition.subtype = kCATransitionFromTop; [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [self.navigationController pushViewController:VC animated:NO];

Y para POP

CATransition* transition = [CATransition animation]; transition.duration = 0.4f; transition.type = kCATransitionReveal; transition.subtype = kCATransitionFromBottom; [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [self.navigationController popViewControllerAnimated:NO];

Sin embargo, hay un problema: su fondo negro claro cuando sube / baja,
Trabajando en eso, tan pronto como se haga publicar código nuevo aquí.


Prueba esto :

UIViewController *yourViewController = [[UIViewController alloc]init]; [UIView beginAnimations: @"Showinfo"context: nil]; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:0.75]; [self.navigationController pushViewController: yourViewController animated:NO]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO]; [UIView commitAnimations];


Si desea una animación de desvanecimiento, este enfoque funciona.

CATransition* transition = [CATransition animation]; transition.duration = 0.3; transition.type = kCATransitionFade; transition.subtype = kCATransitionFromTop; [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [self.navigationController pushViewController:gridController animated:NO];