// // 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: PenguinItem) { let image: UIImage var description: String = "Type: " switch item.type { case .item: description += "Item" image = UIImage(named: item.id)! case .quest: description += "Quest" image = UIImage(named: "spy")! } description += "\nID: " + item.id let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" description += "\nReleased: " + dateFormatter.string(from: item.releaseDate) detailViewController.setDetails(name: item.name, description: description, image: image) push(vc: detailViewController) } func showLoading() { loadingOverlay.show() } func hideLoading() { loadingOverlay.hide() } }