Можно ли показать анимацию pushViewController
как presentModalViewController
, но имеет фоновые функции pushViewController
?
Отображение анимации pushviewcontroller выглядит как presentModalViewController
Ответ 1
Попробуйте следующее:
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];
Ответ 2
Если вы хотите анимацию затухания, этот подход работает.
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];
Ответ 3
Для отображения анимации PushViewConttroler, как указано ниже, код работает,
Для Push
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];
И для 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];
Есть один вопрос, хотя его дисплей светится черным фоном при его движении вверх/вниз,
Работая над этим, как только это будет сделано, напишите новый код здесь.
Ответ 4
Вам следует подумать о том, чтобы сделать что-то вроде:
ViewController *myVC = [[ViewController alloc] initWithFrame:OFF_SCREEN];
[navigationController pushViewController:myVC animated:NO];
где OFF_SCREEN - некоторый CGRect под экраном, например (0, 481, 320, 480). Затем используйте блок анимации для настройки вида viewController view.origin(0, 0). Вероятно, вы захотите сделать блок анимации в viewDidLoad или viewDidAppear.