没有segue的自定义关闭过渡

Posted

技术标签:

【中文标题】没有segue的自定义关闭过渡【英文标题】:Custom dismiss transition without segue 【发布时间】:2015-05-30 22:01:15 【问题描述】:

我看到过关于类似主题的各种问题/答案,但似乎都不是最近的。

如果我只是使用pushViewController 来呈现具有自定义转换的视图控制器,但没有转场,那么指定关闭转换的正确方法是什么,我应该在哪里放置动画代码?

推送和初始过渡:

let tr = CATransition();
tr.duration = 0.35;
tr.type = kCATransitionPush;
tr.subtype = kCATransitionFromTop;
self.navigationController!.view.layer.addAnimation(tr, forKey: kCATransition);

self.navigationController?.pushViewController(vc, animated: false);

【问题讨论】:

【参考方案1】:

您设置推送动画的方式已过时。 从 ios 7 开始,有一个 UINavigationControllerDelegate 方法允许您返回自定义动画对象。

方法签名是-navigationController: animationControllerForOperation: fromViewController: toViewController` of `UINavigationControllerDelegate

欲了解更多信息 - check the docs。

【讨论】:

以上是关于没有segue的自定义关闭过渡的主要内容,如果未能解决你的问题,请参考以下文章

具有单独移动背景的自定义 segue

关闭自定义模式视图控制器

自定义 segue 过渡动画

使用以编程方式创建的 segue IOS 调用自定义过渡动画师

Swift 中的自定义 Segue

iOS中的自定义segue