// // MineCoordinator.swift // PaiAi // // Created by ffib on 2018/12/6. // Copyright © 2018 yb. All rights reserved. // import Foundation import PaiaiDataKit import PaiaiUIKit class MineCoordinator: Coordinator { let mineViewController: MineViewController let navigationController: UINavigationController // let shareUserInfoViewModel init(_ mineViewController: MineViewController, containerViewController: UINavigationController) { self.mineViewController = mineViewController self.navigationController = navigationController self.mineViewController.delegate = self } func start() { } } extension MineCoordinator: MineViewControllerDelegate { func logout() { let vc = makeLoginViewController() containerViewController.presentController(vc) } func didSelect(_ item: MineItem) { mineViewController.dismissController() switch item { case .group: let vc = makeMineGroupViewController() navigationController containerViewController.pushViewController(vc) case .order: let vc = makeMineOrderViewController() containerViewController.pushViewController(vc) case .feedback: let vc = makeMineFeedbackViewController() containerViewController.pushViewController(vc) case .about: let vc = makeMineAboutViewController() containerViewController.pushViewController(vc) } } func loginout() { } } fileprivate extension MineCoordinator { func makeLoginViewController() -> LoginViewController { let vc = UIStoryboard.main.instantiateController(LoginViewController.self) // vc.userInfoViewModel = shareUserInfoViewModel return vc } func makeMineGroupViewController() -> MineGroupViewController { let vc = UIStoryboard.mine.instantiateController(MineGroupViewController.self) vc.viewModel = MineGroupViewModel() return vc } func makeMineOrderViewController() -> MineOrderViewController { let vc = UIStoryboard.mine.instantiateController(MineOrderViewController.self) vc.viewModel = MineOrderViewModel() return vc } func makeMineFeedbackViewController() -> MineFeedbackViewController { let vc = UIStoryboard.mine.instantiateController(MineFeedbackViewController.self) vc.feedbackAPI = FeedbackRemoteAPI() return vc } func makeMineAboutViewController() -> MineAboutViewController { let vc = UIStoryboard.mine.instantiateController(MineAboutViewController.self) return vc } } extension UIStoryboard { static var mine: UIStoryboard { return UIStoryboard(name: "Mine", bundle: Bundle(identifier: "com.Paiai-iOS")) } }