Classes
The following classes are available globally.
-
A container class for Destination presentation configuration models, which are used by a Destination to present new Destinations.
See moreDeclaration
Swift
public final class AppDestinationConfigurations<UserInteractionType, DestinationType, ContentType, TabType> : DestinationConfigurationsContaining where UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable -
A default assistant to be used to configure interface actions. This only adds the the current Destination’s
See moreidas theparentIDvalue.Declaration
Swift
@MainActor public final class DefaultActionAssistant<UserInteractionType, DestinationType, ContentType> : InterfaceActionConfiguring where UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable -
Manages state for a Destination’s interface and holds a reference to it.
See moreDeclaration
Swift
@MainActor public final class DestinationInterfaceState<Destination> : DestinationStateable where Destination : Destinationable -
This class holds the internal state of classes conforming to the
See moreDestinationableprotocol.Declaration
Swift
public final class DestinationInternalState<UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : DestinationInternalStateable where UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
This is a model used to configure how a Destination is presented or removed. It contains information such as the type of Destination to present, the type of presentation to be made, and the type of content to pass along. They are typically associated with a particular
InterfaceActionand used to trigger a new presentation when a user interaction is made with the current UI.Destinations has several built-in presentation types which
DestinationPresentationsupports to enable native SwiftUI and UIKit UI navigation, as well as more complex or custom behavior.navigationStack(type: NavigationPresentationType)This presentation type will add and present a Destination in a navigation stack such as aUINavigationControlleror SwiftUI’sNavigationStack.tabBar(tab: TabType)This presentation type will present a Destination in the specified tab of a tab bar component, such as aUITabBarControlleror SwiftUI’sTabView. If nodestinationTypeis present in theDestinationPresentationmodel, the specified tab will simply be selected, becoming the active tab within the interface.splitView(column: SplitViewColumn)This presentation type will present a Destination in a column of a split view interface, such as aUISplitViewControlleror SwiftUI’sNavigationSplitView.addToCurrentThis presentation type adds a Destination as a child of the currently-presented Destination. Note that this type only works with UIKit and utilizesUIViewController‘saddChildmethod.replaceCurrentThis presentation type replaces the currently-presented Destination with a new Destination in system UI components which allow that.sheet(type: SheetPresentationType, options: SheetPresentationOptions?)This presentation type presents (or dismisses) a Destination in a sheet. Theoptionsparameter allows you to customize how the sheet is presented, configuring SwiftUI-specific options with aViewSheetPresentationOptionsmodel and UIKit-specific options with aControllerSheetPresentationOptionsmodel.destinationPath(path: [DestinationPresentation])This presentation type presents a path of multiple Destination objects, useful for providing deep linking functionality or building complex state with one user interaction.custom(presentation: CustomPresentation<DestinationPresentation>)This presentation type enables you to present a custom presentation of a Destination. It can be used to support the presentation of custom UI, as well as system components which Destinations does not directly support. Thepresentationparameter allows you to use aCustomPresentationmodel with specialized closures to provide whatever functionality you need.
Declaration
Swift
@MainActor public final class DestinationPresentation<DestinationType, ContentType, TabType> where DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeableextension DestinationPresentation: Hashable, Equatable -
A singleton object which contains global options and an internal logger for Destinations. If you wish to interact with this class, please use the
See moresharedreference.Declaration
Swift
@MainActor public final class DestinationsSupport -
This class holds internal state specific to the
See moreGroupedDestinationableprotocol.Declaration
Swift
public final class GroupDestinationInternalState<DestinationType, ContentType, TabType> : GroupDestinationInternalStateable where DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable -
Manages state for a Destination’s interface, holding a reference to its associated Destination and a navigator object which manages the state of the interface’s navigation stack.
See moreDeclaration
Swift
@MainActor public final class NavigationDestinationInterfaceState<Destination> : NavigationDestinationStateable where Destination : Destinationable -
This class brings SwiftUI’s
See moreNavigationStackinto the Destinations ecosystem, handling the state of the stack.Declaration
Swift
@MainActor public final class DestinationNavigator : DestinationPathNavigating -
This class coordinates the presentation of a Destination within the SwiftUI framework.
See moreDeclaration
Swift
@MainActor public final class DestinationSwiftUICoordinator : NSObject, DestinationSwiftUICoordinating -
A Destination which represents a SwiftUI
Viewthat contains aNavigationSplitView.This is a generic Destination that can be used to represent
NavigationSplitViewimplementations in a SwiftUI-based app.To implement the
NavigationSplitViewassociated with this Destination and to enable dynamic updating of yourNavigationSplitView‘s column, bind these properties from inside each column’s closure using aBindableContainerView.Example:
See moreNavigationSplitView(columnVisibility: $columnVisibility) { BindableContainerView(content: $destinationState.destination.currentSidebar) } content: { BindableContainerView(content: $destinationState.destination.currentContent) } detail: { BindableContainerView(content: $destinationState.destination.currentDetail) }Declaration
Swift
@MainActor public final class NavigationSplitViewDestination<ViewType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : NavigationSplitViewDestinationable where ViewType : NavigationSplitViewDestinationInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
A Destination class whose associated user interface is a
Viewwhich contains aNavigationStack.This is a generic Destination that can be used to represent most
See moreNavigationStack-basedViews in a SwiftUI-based app.Declaration
Swift
@MainActor public final class NavigationViewDestination<UserInteractionType, ViewType, DestinationType, ContentType, TabType, InteractorType> : NavigatingViewDestinationable where UserInteractionType : UserInteractionTypeable, ViewType : NavigatingDestinationInterfacing, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
Configures the presentation of a SwiftUI sheet.
See moreDeclaration
Swift
public final class SheetPresentation : SheetPresentationConfiguring -
A Destination which represents a SwiftUI
Viewwhich contains aTabView.This is a generic Destination that can be used to represent most
See moreTabViews in a SwiftUI-based app.Declaration
Swift
@MainActor public final class TabViewDestination<ViewType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : TabBarViewDestinationable where ViewType : TabBarViewDestinationInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeableextension TabViewDestination: @preconcurrency CustomStringConvertible -
A Destination class whose associated user interface is a SwiftUI
View.This is a generic Destination that can be used to represent most
See moreViews in a SwiftUI-based app.Declaration
Swift
@MainActor public final class ViewDestination<ViewType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : ViewDestinationable where ViewType : ViewDestinationInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeableextension ViewDestination: Equatableextension ViewDestination: @preconcurrency CustomStringConvertible -
A concrete Flow class designed to be used to manage Destinations flows within the SwiftUI framework. In most cases creating a custom Flow object is unnecessary, and this class can be used as-is in your SwiftUI-based app.
See moreDeclaration
Swift
@MainActor public final class ViewFlow<DestinationType, TabType, ContentType> : ViewFlowable where DestinationType : RoutableDestinations, TabType : TabTypeable, ContentType : ContentTypeableextension ViewFlow: DestinationInterfaceCoordinatorDelegate -
A model that’s used internally to represent tab types in Destinations.
See moreDeclaration
Swift
public final class TabModel<TabType> : Equatable, Hashable where TabType : TabTypeableextension TabModel: CustomDebugStringConvertible -
A Destination class whose associated user interface is a
UIViewController.This is a generic Destination that can be used to represent most
See moreUIViewControllersubclasses in a UIKit-based app.Declaration
Swift
@MainActor public final class ControllerDestination<ControllerDestinationType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : ControllerDestinationable where ControllerDestinationType : ControllerDestinationInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeableextension ControllerDestination: Equatableextension ControllerDestination: @preconcurrency CustomStringConvertible -
A concrete Flow class designed to be used to manage Destinations flows within the UIKit framework. In most cases creating a custom Flow object is unnecessary, and this class can be used as-is in your UIKit-based app.
See moreDeclaration
Swift
@MainActor public final class ControllerFlow<DestinationType, TabType, ContentType> : NSObject, ControllerFlowable, UITabBarControllerDelegate where DestinationType : RoutableDestinations, TabType : TabTypeable, ContentType : ContentTypeableextension ControllerFlow: DestinationInterfaceCoordinatorDelegate -
This class coordinates the presentation of a Destination within the UIKit framework.
See moreDeclaration
Swift
@MainActor public final class DestinationUIKitCoordinator : NSObject, DestinationUIKitCoordinating -
A Destination class whose associated user interface is a
UINavigationController.This is a generic Destination that can be used to represent most
See moreUINavigationControllerclasses in a UIKit-based app.Declaration
Swift
@MainActor public final class NavigationControllerDestination<ControllerDestinationType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : NavigatingControllerDestinationable where ControllerDestinationType : NavigationControllerDestinationInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeableextension NavigationControllerDestination: Equatableextension NavigationControllerDestination: @preconcurrency CustomStringConvertible -
A
See moreUISplitViewControllersubclass which can be used as an interface for aSplitViewControllerDestination.Declaration
Swift
@MainActor public final class SplitViewController<UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : UISplitViewController, SplitViewControllerDestinationInterfacing where UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
A Destination which represents a UIKit
UISplitViewController.This is a generic Destination that can be used to represent most
See moreUISplitViewControllers in a UIKit-based app.Declaration
Swift
@MainActor public final class SplitViewControllerDestination<UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : SplitViewControllerDestinationable where UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
Adapts a SwiftUI
See moreViewfor use inside aUIViewController, using aUIHostingControllerto present it within UIKit.Declaration
Swift
@MainActor public final class SwiftUIAdapter<Content> : SwiftUIAdaptable where Content : ViewDestinationInterfacing -
A controller that serves as a container for a SwiftUI
See moreView.Declaration
Swift
@MainActor public final class SwiftUIContainerController<Content> : UIViewController, SwiftUIContainerInterfacing where Content : SwiftUIHostedInterfacing -
A Destination representing a
See moreSwiftUIContainerControllerinstance which presents a SwiftUIViewwithin UIKit.Declaration
Swift
@MainActor public final class SwiftUIContainerDestination<ViewType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : SwiftUIContainerDestinationable where ViewType : SwiftUIHostedInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
A state object for a SwiftUI
See moreViewbeing hosted within a UIKit interface.Declaration
Swift
@MainActor public final class SwiftUIHostingState<Content, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : DestinationStateable where Content : SwiftUIHostedInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable -
A Destination which represents a UIKit
UITabViewController.This is a generic Destination that can be used to represent most
See moreUITabViewControllers in a UIKit-based app.Declaration
Swift
@MainActor public final class TabBarControllerDestination<ControllerType, UserInteractionType, DestinationType, ContentType, TabType, InteractorType> : TabBarControllerDestinationable where ControllerType : TabBarControllerDestinationInterfacing, UserInteractionType : UserInteractionTypeable, DestinationType : RoutableDestinations, ContentType : ContentTypeable, TabType : TabTypeable, InteractorType : InteractorTypeable
View on GitHub
Classes Reference