Templates: Upate FlowTemplateCoordinator.

This commit is contained in:
SBiOSoftWhare
2021-10-06 16:59:56 +02:00
parent 44f68172d1
commit 0908cffa71
3 changed files with 19 additions and 10 deletions

View File

@@ -17,7 +17,7 @@
import UIKit
@objcMembers
final class FlowTemplateCoordinator: FlowTemplateCoordinatorProtocol {
final class FlowTemplateCoordinator: NSObject, FlowTemplateCoordinatorProtocol {
// MARK: - Properties
@@ -52,6 +52,9 @@ final class FlowTemplateCoordinator: FlowTemplateCoordinatorProtocol {
self.add(childCoordinator: rootCoordinator)
// Detect when view controller has been dismissed by gesture when presented modally (not in full screen).
self.navigationRouter.toPresentable().presentationController?.delegate = self
if self.navigationRouter.modules.isEmpty == false {
self.navigationRouter.push(rootCoordinator, animated: true, popCompletion: { [weak self] in
self?.remove(childCoordinator: rootCoordinator)
@@ -77,6 +80,14 @@ final class FlowTemplateCoordinator: FlowTemplateCoordinatorProtocol {
}
}
// MARK: - UIAdaptivePresentationControllerDelegate
extension FlowTemplateCoordinator: UIAdaptivePresentationControllerDelegate {
func presentationControllerDidDismiss(_ presentationController: UIPresentationController) {
self.delegate?.flowTemplateCoordinatorDidDismissInteractively(self)
}
}
// MARK: - TemplateScreenCoordinatorDelegate
extension FlowTemplateCoordinator: TemplateScreenCoordinatorDelegate {
func templateScreenCoordinator(_ coordinator: TemplateScreenCoordinatorProtocol, didCompleteWithUserDisplayName userDisplayName: String?) {

View File

@@ -18,6 +18,7 @@ import Foundation
@objc protocol FlowTemplateCoordinatorBridgePresenterDelegate {
func flowTemplateCoordinatorBridgePresenterDelegateDidComplete(_ coordinatorBridgePresenter: FlowTemplateCoordinatorBridgePresenter)
func flowTemplateCoordinatorBridgePresenterDidDismissInteractively(_ coordinatorBridgePresenter: FlowTemplateCoordinatorBridgePresenter)
}
/// FlowTemplateCoordinatorBridgePresenter enables to start FlowTemplateCoordinator from a view controller.
@@ -66,7 +67,6 @@ final class FlowTemplateCoordinatorBridgePresenter: NSObject {
let flowTemplateCoordinator = FlowTemplateCoordinator(parameters: flowTemplateCoordinatorParameters)
flowTemplateCoordinator.delegate = self
let presentable = flowTemplateCoordinator.toPresentable()
presentable.presentationController?.delegate = self
viewController.present(presentable, animated: animated, completion: nil)
flowTemplateCoordinator.start()
@@ -120,17 +120,12 @@ final class FlowTemplateCoordinatorBridgePresenter: NSObject {
// MARK: - FlowTemplateCoordinatorDelegate
extension FlowTemplateCoordinatorBridgePresenter: FlowTemplateCoordinatorDelegate {
func flowTemplateCoordinatorDidComplete(_ coordinator: FlowTemplateCoordinatorProtocol) {
self.delegate?.flowTemplateCoordinatorBridgePresenterDelegateDidComplete(self)
}
}
// MARK: - UIAdaptivePresentationControllerDelegate
extension FlowTemplateCoordinatorBridgePresenter: UIAdaptivePresentationControllerDelegate {
func flowTemplateCoordinatorDidComplete(_ presentationController: UIPresentationController) {
self.delegate?.flowTemplateCoordinatorBridgePresenterDelegateDidComplete(self)
func flowTemplateCoordinatorDidDismissInteractively(_ coordinator: FlowTemplateCoordinatorProtocol) {
self.delegate?.flowTemplateCoordinatorBridgePresenterDidDismissInteractively(self)
}
}

View File

@@ -18,6 +18,9 @@ import Foundation
protocol FlowTemplateCoordinatorDelegate: AnyObject {
func flowTemplateCoordinatorDidComplete(_ coordinator: FlowTemplateCoordinatorProtocol)
/// Called when the view has been dismissed by gesture when presented modally (not in full screen).
func flowTemplateCoordinatorDidDismissInteractively(_ coordinator: FlowTemplateCoordinatorProtocol)
}
/// `FlowTemplateCoordinatorProtocol` is a protocol describing a Coordinator that handle xxxxxxx navigation flow.