How do I do a Fade/No transition between view controllers

前端 未结 10 748
时光取名叫无心
时光取名叫无心 2020-12-07 08:48

Is it possible to do a fade in and fade out transition between View Controllers in Storyboard. Or without transition.

If it\'s possible, what\'s the code for it?

10条回答
  •  -上瘾入骨i
    2020-12-07 09:23

    Push/Pop UIVIewController FadeIn/FadeOut in Swift

    class FadeInPushSegue: UIStoryboardSegue {
    
        var animated: Bool = true
    
        override func perform() {
    
            if var sourceViewController = self.sourceViewController as? UIViewController, var destinationViewController = self.destinationViewController as? UIViewController {
    
                var transition: CATransition = CATransition()
    
                transition.type = kCATransitionFade; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
                sourceViewController.view.window?.layer.addAnimation(transition, forKey: "kCATransition")
                sourceViewController.navigationController?.pushViewController(destinationViewController, animated: false)
    
    
            }
        }
    
    }
    
    class FadeOutPopSegue: UIStoryboardSegue {
    
        override func perform() {
    
            if var sourceViewController = self.sourceViewController as? UIViewController, var destinationViewController = self.destinationViewController as? UIViewController {
    
                var transition: CATransition = CATransition()
    
                transition.duration = 0.4
                transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
                transition.type = kCATransitionFade; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
    
                sourceViewController.view.window?.layer.addAnimation(transition, forKey: "kCATransition")
                sourceViewController.navigationController?.popViewControllerAnimated(false)
            }
        }
    
    }
    

提交回复
热议问题