mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-17 15:09:31 +02:00
Templates: Upate FlowTemplateCoordinator.
This commit is contained in:
@@ -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?) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user