[英]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调用的控制器。
目标只是下面链接中显示的UIViewController。
我对这种在视图控制器之间进行转换的方法不是很熟悉。 您是否尝试过使用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.