CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ | 
| LangLanguage | SwiftSwift | 
| License | MIT | 
| ReleasedLast Release | Oct 2016 | 
| SPMSupports SPM | ✗ | 
Maintained by M. Porooshani.
An easy to implement custom transitions.
This library will help easily customize your transitions (Modal and Push) so that you can be able to move your views from one to another.
Clone or download this repo, add files inside Source folder to your project.
In this method you will setup the EasyTrans very easily using a simple method and us it for both push transitions and modal presentations.
 func next() {
    guard let destinationViewController = storyboard?.instantiateViewControllerWithIdentifier("secondVC") else {
      return
    }
    // This method adds easy trans to the SecondViewController using the provided options for present and dismiss.
    setupEasyTransition(on: destinationViewController, presentOptions: TransEasyPresentOptions(duration: 0.4, sourceView: qrButton, blurStyle: UIBlurEffectStyle.Dark), dismissOptions: TransEasyDismissOptions(duration: 0.4, destinationView: qrButton, interactive: true))
    if modal {
      presentViewController(destinationViewController, animated: true, completion: nil)
    } else {
      performSegueWithIdentifier(toSecondViewSegueID, sender: sender)
    }
  }
In the destination view controller:
extension SecondViewController: TransEasyDestinationViewControllerProtocol {
  func transEasyDestinationView() -> UIView {
    return qrImage
  }
}
And to be able to use TransEasy for pop transitions in source view controller:
func transEasyDestinationView() -> UIView {
    return qrButton
  }
Alternatively, you can implement the transitioningDelegate yourself and just use the animator controller.
    let presentAnimator: EasyPresentAnimationController = EasyPresentAnimationController()
    let dismissAnimator: EasyDismissAnimationController = EasyDismissAnimationController()    prepareForSegue, set the transitioningDelegate:
segue.destinationViewController.transitioningDelegate = self
Extend your view controller to use the TransEasy transitions:
extension ViewController: UIViewControllerTransitioningDelegate {
   func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
       guard let secondVC = presented as? SecondViewController else {
           return nil
       }
       presentAnimator.duration = 0.4
       presentAnimator.originalView = qrButton
       presentAnimator.destinationView = secondVC.qrImage
       presentAnimator.blurEffectStyle = .Dark
       return presentAnimator
   }
   func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
       guard let secondVC = dismissed as? SecondViewController else {
           return nil
       }
       dismissAnimator.duration = 0.4
       dismissAnimator.originalView = secondVC.qrImage
       dismissAnimator.destinationView = qrButton
       return dismissAnimator
   }
}