NavigatingControllerDestinationable

@MainActor
public protocol NavigatingControllerDestinationable<DestinationType, ContentType, TabType> : GroupedControllerDestinationable where Self.ControllerType : NavigationControllerDestinationInterfacing

This protocol represents a Destination whose interface is a UINavigationController.

  • navigator() Default implementation

    Returns the navigator which manages the state of the UINavigationController stack.

    Default Implementation

    Declaration

    Swift

    @MainActor
    func navigator() -> (any DestinationPathNavigating)?
  • navigateBackInStack(presentationID:) Default implementation

    Removes the current Destination and navigates to the previous Destination in the UINavigationController stack, if one exists.

    Default Implementation

    Declaration

    Swift

    @MainActor
    func navigateBackInStack(presentationID: UUID?)

    Parameters

    previousPresentationID

    An optional unique identifier of the previous Destination.

  • Finds a Destination of the specified type within the UINavigationController stack.

    Default Implementation

    Declaration

    Swift

    @MainActor
    func findDestination(typeToFind: DestinationType, currentLevel: any ControllerDestinationable<DestinationType, ContentType, TabType>) -> (any ControllerDestinationable<DestinationType, ContentType, TabType>)?

    Parameters

    typeToFind

    The type of Destination to find.

    currentLevel

    The current level of the view hierarchy to search at.

    Return Value

    A Destination of the specified type, if one was found.

  • Determines whether this Destination supports the shouldSetDestinationAsCurrent parameter of the addChild method. If this Destination should ignore requests to not make added children the current Destination, this property should be set to false. For NavigatingControllerDestinationable-conforming classes, the default is false.

    Declaration

    Swift

    @MainActor
    var supportsIgnoringCurrentDestinationStatus: Bool { get }

    Return Value

    Returns whether the current Destination status should be ignored.

  • Declaration

    Swift

    @MainActor
    func addChild(childDestination: any Destinationable<DestinationType, ContentType, TabType>, shouldSetDestinationAsCurrent: Bool? = true, shouldAnimate: Bool? = true)
  • Undocumented

    Declaration

    Swift

    @MainActor
    func removeDestinations(destinations: [any ControllerDestinationable<DestinationType, ContentType, TabType>])
  • Declaration

    Swift

    @MainActor
    func replaceChild(currentID: UUID, with newDestination: any Destinationable<DestinationType, ContentType, TabType>, removeDestinationFromFlowClosure: RemoveDestinationFromFlowClosure? = nil)
  • removeAllChildren() Extension method

    Declaration

    Swift

    @MainActor
    func removeAllChildren()
  • Declaration

    Swift

    @MainActor
    func removeChild(identifier: UUID, removeDestinationFromFlowClosure: RemoveDestinationFromFlowClosure?)
  • prepareForPresentation() Extension method

    Declaration

    Swift

    @MainActor
    func prepareForPresentation()