Отразить анимацию, когда контроллер нажал на iPhone - PullRequest
10 голосов
/ 24 марта 2010

Я осмотрелся и не нашел то, что искал.

Есть ли способ получить анимацию при нажатии на контроллер вида?

Я читал, что вы можете изменить анимацию с помощью контроллера модального вида, но AFAIK анимация для модального вида снизу вверх, и это не то, что я ищу. Есть ли способ как-нибудь получить флип-анимацию?

Ответы [ 4 ]

51 голосов
/ 27 мая 2010

как то так должно работать

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController: yourviewcontroller animated:NO]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

не забудьте установить анимированное значение NO при вызове pushViewController

15 голосов
/ 21 сентября 2012

Это также работает .. для iOS 4.0 and greater

[UIView  transitionWithView:self.navigationController.view duration:0.8  options:UIViewAnimationOptionTransitionFlipFromLeft
                             animations:^(void) {
                                 BOOL oldState = [UIView areAnimationsEnabled];
                                 [UIView setAnimationsEnabled:NO];
                                 [self.navigationController pushViewController:viewController animated:YES];
                                 [UIView setAnimationsEnabled:oldState];
                             }
                             completion:nil];
5 голосов
/ 25 апреля 2011
- (void)viewWillDisappear:(BOOL)animated {
[UIView beginAnimations:@"animation2" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration: 0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations]; }

в новом viewcontroller заставит его переворачиваться таким же образом (вместо скольжения влево), когда нажата кнопка «Назад» на панели инструментов - убедитесь, что здесь включена анимация, например, если вы делаете пользовательскую кнопку для всплытия стек, используйте:

- (void) backToPrevious: (id) sender 
{
    //[self.navigationController popViewControllerAnimated:YES];
    [self dismissModalViewControllerAnimated:YES];
}
2 голосов
/ 24 марта 2010

Для модально представленных контроллеров представления вы можете изменить анимацию с помощью свойства modalTransitionStyle. AFAIK, нет способа изменить push-анимацию контроллера навигации (кроме перестройки UINavigationController с нуля).

...