         return false
     }
     
-    public func preloadViewController(_ viewController:UIViewController, from parentViewController:UIViewController)  {}
+    public func preloadViewController(_ viewController:UIViewController, from previousViewController:UIViewController)  {}
 
 }
 

    
    typealias TransitionBlock = (UIViewController) -> Void
    
    func backwardTransitionBlock(animated:Bool, completionBlock:@escaping()->()) -> TransitionBlock
    
}

    
    typealias TransitionBlock = (UINavigationController, UIViewController) -> Void
    
    /**
        That method defines if previous view controller should load view controller from that transition. Default = false.
    */
    func shouldPreloadViewController() -> Bool
    
    /**
        That method invokes only if shouldPreloadViewController() returns true. It invokes right before presenting previous view controller.
     
        - Parameter viewController:         Current view controller to present.
        - Parameter parentViewController:   Previous view controller. For exmaple if previous view controller is kind of UITabBarController you can use it to assign viewControllers.
    */
    func preloadViewController(_ viewController:UIViewController, from previousViewController:UIViewController)
    
    /**
        That method invokes right before presenting view controller.
    */
    func configureViewController(from viewController:UIViewController) -> UIViewController
    
    
    /**
        That method returns block which gonna be used to show view controller in it's navigation controller.
    */
    func forwardTransitionBlock(animated:Bool, completionBlock:@escaping ()->()) -> TransitionBlock
    
}
