UINavigationController: всплывающее окно контроллера в противоположном направлении - PullRequest
5 голосов
/ 07 ноября 2011

Я пытаюсь вызвать [[self navigationController] popViewControllerAnimated:YES], но заставляю анимацию скользить справа налево, а не слева направо. Есть ли простой способ сделать это? Я хочу вернуться к предыдущему виду. Любая помощь приветствуется. Спасибо!

Ответы [ 2 ]

17 голосов
/ 22 апреля 2013

Вот так можно вывести контроллер в противоположном направлении. Это работает для меня 100%

CATransition *transition = [CATransition animation];
    transition.duration = 0.45;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
    transition.type = kCATransitionFromRight;
    [transition setType:kCATransitionPush];
    transition.subtype = kCATransitionFromRight;
    [self.navigationController.view.layer addAnimation:transition forKey:nil];
    [self.navigationController popViewControllerAnimated:NO];
9 голосов
/ 07 ноября 2011

Возможно, посмотрите на следующий код, который я использовал некоторое время назад, и попытайтесь заставить его работать на себя.Ю нужно только изменить setAnimationTransition

[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.375];
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];

Существует несколько различных видов анимаций по умолчанию, по словам сайта яблок, такие виды анимации возможны:в вашем случае вы хотели бы использовать следующее:

    [UIView  beginAnimations:nil context:nil];
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.75];
    [self.navigationController popViewControllerAnimated:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
    [UIView commitAnimations];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...