繁体   English   中英

快速定制自定义权利

[英]Custom right segue in swift

我试图从两个视图控制器中获得正确的选择,问题是当它进行过渡时,第一个视图控制器进行了选择,但似乎在短时间内几乎重叠了一下,然后放置了新视图控制器就可以了。 我在网上看过其他帖子,似乎没有人遇到这个问题。

class UIStoryboardSegueFromRight: UIStoryboardSegue
{
    override func perform() {
        let src = self.source as UIViewController
        let dst = self.destination as UIViewController
        let transition: CATransition = CATransition()
        let timeFunc: CAMediaTimingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
        transition.duration = 0.2
        transition.timingFunction = timeFunc
        transition.type = kCATransitionPush
        transition.subtype = kCATransitionFromRight

        src.view.window?.layer.add(transition, forKey: nil)
        src.present(dst, animated: false, completion: nil)
    }
}

我在以下图片中包含了该路线。 源使用的是UINavController,该UINavController的根控制器为TabViewController。 然后,将该TabViewController附加到UIViewController上,该UIViewController是使用图的最右侧显示的自定义转换进行segue调用的控制器。

All_Feed ViewController是源

目标只是下面链接中显示的UIViewController。

发布页面ViewController是目标

我对这种在视图控制器之间进行转换的方法不是很熟悉。 您是否尝试过使用UIViewControllerAnimatedTransitioning https://developer.apple.com/documentation/uikit/uiviewcontrolleranimatedtransitioning

与在segue中进行逻辑处理相比,这还使您可以以更可重用的方式抽象逻辑。

由于希望源提供目标,因此可以将目标VC用作过渡委托,以连接UIViewControllerAnimatedTransitioning逻辑

由于您尚未共享任何视觉效果,因此我不会尝试翻译您要完成的动画,但是也许本教程还可以帮助您了解如何以这种方式实现过渡: https : //www.objc.io /问题/ 5-ios7 /视图-控制器跃迁/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM