TabBarControllerDestination
@MainActor
public final class TabBarControllerDestination<PresentationConfiguration, TabControllerType> : TabBarControllerDestinationable where PresentationConfiguration : DestinationPresentationConfiguring, TabControllerType : TabBarControllerDestinationInterfacing, PresentationConfiguration.DestinationType == TabControllerType.DestinationType, PresentationConfiguration.TabType == TabControllerType.TabType
A Destination which represents a UIKit UITabViewController
.
This is a generic Destination that can be used to represent most UITabViewController
s in a UIKit-based app.
-
Declaration
Swift
public typealias ControllerType = TabControllerType
-
A type of
AppDestinationConfigurations
which handles Destination presentation configurations.Declaration
Swift
public typealias DestinationConfigurations = AppDestinationConfigurations<UserInteractionType, PresentationConfiguration>
-
A type of
AppDestinationConfigurations
which handles system navigation events.Declaration
Swift
public typealias NavigationConfigurations = AppDestinationConfigurations<SystemNavigationType, PresentationConfiguration>
-
Declaration
Swift
public typealias DestinationType = TabControllerType.DestinationType
-
Declaration
Swift
public typealias TabType = TabControllerType.TabType
-
Declaration
Swift
public typealias ContentType = PresentationConfiguration.ContentType
-
Declaration
Swift
public typealias InteractorType = TabControllerType.InteractorType
-
Declaration
Swift
public typealias PresentationConfiguration = PresentationConfiguration
-
Declaration
Swift
public typealias UserInteractionType = TabControllerType.UserInteractionType
-
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 parentDestinationID: UUID? { get set }
-
Declaration
Swift
@MainActor public var destinationIDsForTabs: [TabType : UUID] { get set }
-
Declaration
Swift
@MainActor public var childDestinations: [any Destinationable<PresentationConfiguration>] { get set }
-
Declaration
Swift
@MainActor public var currentChildDestination: (any Destinationable<PresentationConfiguration>)? { get set }
-
Declaration
Swift
@MainActor public var systemNavigationConfigurations: NavigationConfigurations? { get set }
-
Declaration
Swift
@MainActor public var interactors: [InteractorType : any Interactable] { get set }
-
Declaration
Swift
@MainActor public var interfaceActions: [UserInteractionType : InterfaceAction<UserInteractionType, DestinationType, ContentType>] { get set }
-
Declaration
Swift
@MainActor public var systemNavigationActions: [SystemNavigationType : InterfaceAction<SystemNavigationType, DestinationType, ContentType>] { get set }
-
Declaration
Swift
@MainActor public var interactorAssistants: [UserInteractionType : any InteractorAssisting<TabBarControllerDestination>] { get set }
-
Declaration
Swift
@MainActor public var navControllersForTabs: [TabType : UINavigationController] { get set }
-
Declaration
Swift
@MainActor public var destinationConfigurations: DestinationConfigurations? { get set }
-
Declaration
Swift
@MainActor public var childWasRemovedClosure: GroupChildRemovedClosure? { get set }
-
Declaration
Swift
@MainActor public var currentDestinationChangedClosure: GroupCurrentDestinationChangedClosure? { get set }
-
Declaration
Swift
@MainActor public var selectedTabUpdatedClosure: TabBarControllerSelectedTabUpdatedClosure<TabType>? { get set }
-
Declaration
Swift
@MainActor public var isSystemNavigating: Bool { get set }
-
init(type:
tabDestinations: tabTypes: selectedTab: destinationConfigurations: navigationConfigurations: parentDestinationID: ) The initializer.
Declaration
Swift
@MainActor public init?(type: DestinationType, tabDestinations: [any ControllerDestinationable<PresentationConfiguration>], tabTypes: [TabType], selectedTab: TabType, destinationConfigurations: DestinationConfigurations? = nil, navigationConfigurations: NavigationConfigurations? = nil, parentDestinationID: UUID? = nil)
Parameters
type
The type of Destination.
tabDestinations
An array of Destinations for each tab, in order of appearance.
tabTypes
An array of tab types, in order of appearance.
selectedTab
The type of tab that should be initially selected.
destinationConfigurations
The Destination presentation configurations associated with this Destination.
navigationConfigurations
The system navigation events associated with this Destination.
parentDestinationID
The identifier of the parent Destination.