User Flow

  • A sequential flow of ‘steps’ which correspond to visible view controllers on screen.

    Declaration

    Swift

    open class MimiUserFlow : NSObject, MimiThemeable, FlowPresentationControllerHandlerDelegate
  • An individual step that makes up part of a flow, mapping 1:1 with a screen that appears in the flow.

    The Step is responsible for populating and controlling the on screen UI elements, and has the power to dictate flow navigation as well.

    Declaration

    Swift

    open class MimiUserFlowStep<ContentViewController, HeaderView, FooterView> : NSObject, MimiCoordinatableUserFlowSteppable, MimiThemeable where ContentViewController : UIViewController, HeaderView : MimiUserFlowStepHeaderView, FooterView : MimiUserFlowStepFooterView
  • Coordinator which translates the on screen navigation stack and its interactions from a UINavigationController to a UserFlow.

    Declaration

    Swift

    public final class MimiUserFlowCoordinator : NSObject
    extension MimiUserFlowCoordinator: UINavigationControllerDelegate
  • View Controller that provides a canvas for UserFlow presentation.

    This simply contains the navigation controller used for the flow hierarchy and also creates the UserFlowCoordinator.

    Declaration

    Swift

    @MainActor
    public final class MimiUserFlowViewController : UIViewController
  • Abstract class for either a header or footer view in a UserFlowStep.

    Provides access to performing actions in the user flow step.

    Declaration

    Swift

    @MainActor
    open class MimiUserFlowStepAccessoryView : MimiView
  • Header view that provides the default Mimi styled navigation header labels.

    Declaration

    Swift

    @MainActor
    open class MimiNavigationStepHeaderView : MimiUserFlowStepHeaderView
  • Footer view that displays an action button and a text button designed for flow progression.

    Declaration

    Swift

    @MainActor
    open class MimiNavigationStepFooterView : MimiUserFlowStepFooterView
  • UserFlowCoordinator Errors

    • alreadyStarted: The flow has already been started by the coordinator.
    • notStarted: The flow has not been started yet.
    • missingNavigationController: The coordinator is missing a navigation stack to use.
    • outOfFlowRange: The coordinator cannot perform the operation as it has reached the end of the flow range.
    • invalidDestinationStep: The step that was requested as a destination is invalid.
    Declaration

    Swift

    public enum MimiUserFlowCoordinatorError : Error