推送 UIViewController
Posted
技术标签:
【中文标题】推送 UIViewController【英文标题】:Pushing UIViewController 【发布时间】:2020-04-06 06:09:23 【问题描述】:有没有办法通过自定义屏幕显示来推送视图控制器? ,就像展示一个视图控制器一样,modalPresentationStyle = .custom
。 !当推送带有自定义动画的视图控制器时,推送的视图控制器会消失。
【问题讨论】:
【参考方案1】:您可以通过在过渡时分配所需的动画来推动:
let yourVC = self.storyboard?.instantiateViewController(withIdentifier: "YOURVIEWCONTROLLER") as! YOURVIEWCONTROLLER
UIView.animate(withDuration: 0.6, animations: () -> Void in
UIView.setAnimationCurve(.easeInOut)
self.navigationController?.pushViewController(yourVC, animated: true)
UIView.setAnimationTransition(.flipFromRight, for: (self.navigationController?.view)!, cache: false)
)
【讨论】:
【参考方案2】:是的,您可以为推送视图控制器制作自定义动画。
您可以实现自己的 UINavigationControllerDelegate 来触发自己的过渡动画。有很多网站解释了如何做到这一点。你可以查看here,here,还有很多 UIViewControllerAnimatedTransitioning 的例子。随便找一些不错的教程,如何实现。
【讨论】:
我知道如何制作过渡动画,推送视图控制器的问题是如果我想将它显示在屏幕的一半上, fromViewController 会消失,不像呈现 viewController 。 这取决于您的需要,您可以将视图作为图像从 fromView 复制并继续显示。但是如果你需要交互,那么你不应该使用推送机制。 好主意,谢谢。我会展示它而不是推送它。以上是关于推送 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章