// // ForayCoordinator.swift // foray // // Created by Nicholas Tay on 21/3/2022. // import Foundation import UIKit protocol ForayCoordinated: UIViewController { var coordinator: ForayCoordinator? { get set } } class ForayCoordinator: Coordinator { var childCoordinators = [Coordinator]() var navigationController: UINavigationController var loadingOverlay: ForayLoadingOverlay init(navigationController: UINavigationController) { self.navigationController = navigationController self.loadingOverlay = ForayLoadingOverlay(viewController: navigationController) } private func push(vc: ForayCoordinated, animated: Bool = true) { vc.coordinator = self navigationController.pushViewController(vc, animated: animated) } func start() { push(vc: ForayTableViewController(), animated: false) } let detailViewController = ForayDetailViewController() func showDetails(item: PenguinItemViewModel) { detailViewController.setDetails(item: item) push(vc: detailViewController) } func showLoading() { loadingOverlay.show() } func hideLoading() { loadingOverlay.hide() } }