【问题标题】:Pushing UIViewController推送 UIViewController
【发布时间】:2023-04-06 09:16:01
【问题描述】:

有没有办法通过自定义屏幕显示来推送视图控制器? ,就像展示一个视图控制器一样,modalPresentationStyle = .custom!当推送带有自定义动画的视图控制器时,推送的视图控制器会消失。

【问题讨论】:

    标签: ios swift uinavigationcontroller


    【解决方案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 来触发自己的过渡动画。有很多网站解释了如何做到这一点。你可以查看herehere,还有很多 UIViewControllerAnimatedTransitioning 的例子。随便找一些不错的教程,如何实现。

      【讨论】:

      • 我知道如何制作过渡动画,推送视图控制器的问题是如果我想将它显示在屏幕的一半上, fromViewController 会消失,不像呈现 viewController 。
      • 这取决于您的需要,您可以将视图作为图像从 fromView 复制并继续显示。但是如果你需要交互,那么你不应该使用推送机制。
      • 好主意,谢谢。我会展示它而不是推送它。
      猜你喜欢
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多