The SDK supports custom input data for destination-specific behavior, including custom back-button actions.
public enum EcoInputData {
case birbonusCabinet(BirbonusCabinetInputData? = nil)
case benefits
case bravoClub
case subscription
}Use BirbonusCabinetInputData to customize the back actions of the Birbonus Cabinet and category screens.
public struct BirbonusCabinetInputData {
public let cabinetBackAction: (() -> Void)?
public let categoryBackAction: (() -> Void)?
public init(
cabinetBackAction: (() -> Void)? = nil,
categoryBackAction: (() -> Void)? = nil
)
}let inputData = BirbonusCabinetInputData(
cabinetBackAction: {
print("Custom cabinet back action")
// Add custom navigation logic.
},
categoryBackAction: {
print("Custom category back action")
// Add custom navigation logic.
}
)
let coordinator = EcoCoordinator(
router: navigationController,
configurator: configurator,
inputData: .birbonusCabinet(inputData)
)let newInputData = BirbonusCabinetInputData(
cabinetBackAction: {
navigationController.popToRootViewController(animated: true)
}
)
coordinator.update(
inputData: .birbonusCabinet(newInputData)
)