我试图调用[[self navigationController] popViewControllerAnimated:YES]
,但使动画从右向左滑动,而不是从左向右滑动。任何简单的方法来做到这一点?我想返回到前一个视图。任何帮助表示赞赏。谢谢!UINavigationController:在相反方向弹出视图控制器
5
A
回答
8
这是可能的,看看我用了一段时间后面的代码,并尝试使它为自己工作。郁可唯需要改变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];
有几种不同类型的默认动画使用,苹果网站说,这种动画是可能的:
typedef enum {
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;
所以你的情况,你会想使用以下内容:
[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];
16
这是如何在相反方向弹出视图控制器。它为我工作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];
+0
这就是我正在寻找的!谢谢。 – iChirag
+2
您将类型设置了两次? 'transition.type = kCATransitionPush'应该足够了。 –
相关问题
- 1. UINavigationController - 在弹出视图控制器之前运行代码
- 2. iOS:在弹出视图控制器时更改界面方向
- 3. 从UINavigationController中弹出视图控制器的问题
- 4. 使用UINavigationController弹出视图控制器时传递值
- 5. “弹出”UINavigationController中的几个视图控制器堆栈
- 6. pushviewcontroller或弹出到视图控制器UINavigationController
- 7. 仅在横向模式下弹出视图控制器时方向错误
- 8. 在UINavigationController中推视图控制器
- 9. 需要帮助解雇模态呈现视图控制器,并从弹出的UINavigationController视图控制器
- 10. - 视图 - 控制器遏制与UINavigationController的
- 11. 从UINavigationController弹出视图更改设备方向
- 12. 如何在视图弹出后从uinavigationcontroller中删除分段控制器?
- 13. MVYSideMenu弹出到根视图控制器
- 14. 弹出到初始视图控制器
- 15. 视图控制器弹出ttthumbsviewcontroller
- 16. 如何在推送的视图控制器下弹出视图控制器?
- 17. 将视图控制器弹出到一个不存在的视图控制器
- 18. 如何在导航弹出视图控制器时更改动画的方向
- 19. UINavigationController不推视图控制器
- 20. UINavigationController不推送视图控制器
- 21. UINavigationController的错误推视图控制器
- 22. UINavigationController不显示根视图控制器
- 23. 不使用导航控制器时弹出视图控制器?
- 24. 调用视图控制器类而不弹出视图控制器本身
- 25. 从弹出视图控制器获取数据到父视图控制器
- 26. 在UINavigationController中设置框架视图控制器视图
- 27. 将数据传递给UINavigationController指向的视图控制器
- 28. iOS8锁定视图控制器方向
- 29. IOS视图控制器方向
- 30. 多视图控制器的方向
谢谢。有没有像滑动'pushViewController'一样滑动它的方法? – Mason
是的,就像我说的,你只需要改变这里的线:[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; – Wesley
我明白这一点。虽然我找不到正确的转换。 – Mason