// // UIViewController+StatusTableViewCellDelegate.swift // Tusker // // Created by Shadowfacts on 8/27/18. // Copyright © 2018 Shadowfacts. All rights reserved. // import UIKit extension UIViewController: UIViewControllerTransitioningDelegate { public func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? { if presented is LargeImageViewController { return LargeImageExpandAnimationController() } else if let presented = presented as? GalleryViewController, presented.sourcesInfo[presented.startIndex] != nil { return GalleryExpandAnimationController() } return nil } public func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? { if let dismissed = dismissed as? LargeImageViewController { return LargeImageShrinkAnimationController(interactionController: dismissed.dismissInteractionController) } else if let dismissed = dismissed as? GalleryViewController, dismissed.sourcesInfo[dismissed.currentIndex] != nil { return GalleryShrinkAnimationController(interactionController: dismissed.dismissInteractionController) } return nil } public func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? { if let animator = animator as? LargeImageShrinkAnimationController, let interactionController = animator.interactionController, interactionController.inProgress { return interactionController } else if let animator = animator as? GalleryShrinkAnimationController, let interactionController = animator.interactionController, interactionController.inProgress { return interactionController } return nil } }