TabBarControllerDestination
@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
A Destination which represents a UIKit UITabViewController.
This is a generic Destination that can be used to represent most UITabViewControllers in a UIKit-based app.
-
A type of
AppDestinationConfigurationswhich handles Destination presentation configurations.Declaration
Swift
public typealias DestinationConfigurations = AppDestinationConfigurations<UserInteractionType, DestinationType, ContentType, TabType> -
A type of
AppDestinationConfigurationswhich handles system navigation events.Declaration
Swift
public typealias NavigationConfigurations = AppDestinationConfigurations<SystemNavigationType, DestinationType, ContentType, TabType> -
Declaration
Swift
public typealias PresentationType = DestinationPresentationType<DestinationType, ContentType, TabType> -
Declaration
Swift
@MainActor public let id: UUID -
Declaration
Swift
@MainActor public let type: DestinationType -
Declaration
Swift
@MainActor public var controller: ControllerType? { get set } -
Declaration
Swift
@MainActor public var internalState: DestinationInternalState<UserInteractionType, DestinationType, ContentType, TabType, InteractorType> { get set } -
Declaration
Swift
@MainActor public var groupInternalState: GroupDestinationInternalState<DestinationType, ContentType, TabType> { get set } -
Declaration
Swift
@MainActor public var destinationIDsForTabs: [TabType : UUID] { get set } -
Declaration
Swift
@MainActor public var activeTabs: [TabModel<TabType>] { get set } -
Declaration
Swift
@MainActor public var selectedTab: TabModel<TabType> { get set } -
Declaration
Swift
@MainActor public var navControllersForTabs: [TabType : UINavigationController] { get set } -
Declaration
Swift
@MainActor public var selectedTabUpdatedClosure: TabBarControllerSelectedTabUpdatedClosure<TabType>? { get set } -
init(type:tabDestinations: tabTypes: selectedTab: destinationConfigurations: navigationConfigurations: parentDestinationID: ) The initializer.
Declaration
Swift
@MainActor public init?(type: DestinationType, tabDestinations: [any ControllerDestinationable<DestinationType, ContentType, TabType>], tabTypes: [TabType], selectedTab: TabType, destinationConfigurations: DestinationConfigurations? = nil, navigationConfigurations: NavigationConfigurations? = nil, parentDestinationID: UUID? = nil)Parameters
typeThe type of Destination.
tabDestinationsAn array of Destinations for each tab, in order of appearance.
tabTypesAn array of tab types, in order of appearance.
selectedTabThe type of tab that should be initially selected.
destinationConfigurationsThe Destination presentation configurations associated with this Destination.
navigationConfigurationsThe system navigation events associated with this Destination.
parentDestinationIDThe identifier of the parent Destination.
-
Declaration
Swift
@MainActor public func prepareForPresentation() -
presentDestination(destination:in: shouldUpdateSelectedTab: presentationOptions: removeDestinationFromFlowClosure: ) Declaration
Swift
@MainActor public func presentDestination(destination: any ControllerDestinationable<DestinationType, ContentType, TabType>, in tab: TabType, shouldUpdateSelectedTab: Bool = true, presentationOptions: NavigationStackPresentationOptions? = nil, removeDestinationFromFlowClosure: RemoveDestinationFromFlowClosure? = nil) throws -
Declaration
Swift
@MainActor public func updateSelectedTab(type: TabType) throws -
Declaration
Swift
@MainActor public func updateChildren()
View on GitHub