UINavigationController:弹出视图控制器的方向相反

Mas*_*son 5 iphone animation uinavigationcontroller ios

我试着打电话[[self navigationController] popViewControllerAnimated:YES]但是让动画从右向左滑动而不是从左向右滑动.有什么简单的方法吗?我想回到上一个观点.任何帮助表示赞赏.谢谢!

Nig*_*ury 18

这就是人们如何在相反的方向上弹出视图控制器.它为我工作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];
Run Code Online (Sandbox Code Playgroud)

  • 你设置两次类型?`transition.type = kCATransitionPush`就足够了. (2认同)

Wes*_*ley 9

有可能,看看下面我使用过的代码,并试着让它适合自己.禹只需改变了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];
Run Code Online (Sandbox Code Playgroud)

可以使用一些不同类型的默认动画,苹果网站说这种动画是可能的:

typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下你会想要使用以下内容:

    [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];
Run Code Online (Sandbox Code Playgroud)