Route

open class Route<Builder, Transition> : Routable where Builder : ViewControllerBuilder, Transition : ViewTransition

Type, that is responsible for performing routing between views.

  • Object, responsible for building a view, that is needed for routing.

    Declaration

    Swift

    public let builder: Builder
  • Object, that is responsible for performing a transition between views

    Declaration

    Swift

    public let transition: Transition
  • Closure, that is called prior to executing .hide transition

    Declaration

    Swift

    open var prepareForHideTransition: ((_ visibleView: ViewController, _ transition: Transition) -> Void)?
  • Closure, that is called prior to executing .show transition

    Declaration

    Swift

    open var prepareForShowTransition: ((_ view: Builder.ViewType, _ transition: Transition, _ toView: ViewController?) -> Void)?
  • Closure, that is called prior to executing a .custom transition

    Declaration

    Swift

    open var prepareForCustomTransition: ((_ visibleView: ViewController, _ transition: Transition) -> Void)?
  • Creates Route with specified builder and transition.

    Declaration

    Swift

    public init(builder: Builder, transition: Transition)

    Parameters

    builder

    Object, responsible for building a view.

    transition

    Object, that is responsible for performing transition between views.

  • Performs route between views.

    Declaration

    Swift

    open func perform(withViewFinder viewFinder: ViewFinder,
                      context: Builder.Context,
                      completion: ((Bool) -> Void)? = nil)

    Parameters

    viewFinder

    Object, responsible for providing currently visible view.

    context

    object that will be used to build view to navigate to, if needed.

    completion

    will be called once routing is completed.

Available where Builder.ViewType: ContextUpdatable, Builder.ViewType.Context == Builder.Context