是的,我一直在寻求一个答案了。 无解的工作,除一人外,不给一个淡出过渡的选项,只有翻转或卷曲。
像这样:
methodname
configure animation
[self.navigationController popViewControllerAnimated:NO];
不管我什么各种过渡动画配置的,没有什么是单纯采用典型的单线流行明显不同。 如果我将其更改为…Animated:YES];
,我得到的标准弹出动画,也许从破碎的配置奇怪的事情发生。
所以我的问题是这样的:我怎样才能做一个pop
着,如果不是CrossDissolve
,那么至少东西看起来一样吗? 是,甚至有可能与导航控制器?
使用模态的看法会有默认的动画我想,我可以管理视图栈很轻松了,但我不想这样做。
对于这种类型的转变我真的建议一个模式视图控制器,这就是该系统的设计方式。
但是,如果你坚持使用导航控制器有一个办法,虽然有点难看。
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
CATransition *transition = [CATransition animation];
[transition setType:kCATransitionFade];
[self.navigationController.view.layer addAnimation:transition forKey:@"someAnimation"];
[self.navigationController popViewControllerAnimated:YES];
[CATransaction commit];
该CATransaction
将禁用所有标准的动画。 所述CATransition
增加时的观点被交换淡入过渡到导航控制器层(在此情况下除去被弹出的视图控制器视图)。
另外,在上述的iOS 7,可能要考虑UIViewControllerAnimatedTransitioning
用于呈现视图控制器,或UINavigationControllerDelegate
方法:
- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC
我有一些来自另一个问题示例代码以获得更多信息。
里斯Kluivers的答案斯威夫特3:
CATransaction.begin()
CATransaction.setDisableActions(true)
let animation = CATransition()
animation.type = kCATransitionFade
self.navigationController?.view.layer.add(animation, forKey: "someAnimation")
_ = self.navigationController?.popViewController(animated: false)
CATransaction.commit()