暫無描述

MineCoordinator.swift 3.4KB

    // // 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 var childCoordinator = [String: Coordinator]() // let shareUserInfoViewModel init(_ mineViewController: MineViewController, navigationController: UINavigationController) { self.mineViewController = mineViewController self.navigationController = navigationController self.mineViewController.delegate = self } func start() { } } extension MineCoordinator: MineViewControllerDelegate { func logout() { let vc = makeLoginViewController() navigationController.presentController(vc) } func didSelect(_ item: MineItem) { mineViewController.dismissController() switch item { case .group: let vc = makeMineGroupViewController() vc.viewModel.delegate = self navigationController.pushViewController(vc) case .order: let vc = makeMineOrderViewController() navigationController.pushViewController(vc) case .feedback: let vc = makeMineFeedbackViewController() navigationController.pushViewController(vc) case .about: let vc = makeMineAboutViewController() navigationController.pushViewController(vc) } } func loginout() { } } extension MineCoordinator: MineGroupViewModelDelegate { func didSelect(_ item: GroupItem) { let vc = makeGroupViewController(item: item) let coordinator = GroupCoordinator(navigationController: navigationController) childCoordinator["group"] = coordinator navigationController.pushViewController(vc) } } 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 } func makeGroupViewController(item: GroupItem) -> GroupViewController { let vc = GroupViewController.instantiate() vc.viewModel = GroupViewModel(groupItem: item) vc.groupItem = item return vc } } extension UIStoryboard { static var mine: UIStoryboard { return UIStoryboard(name: "Mine", bundle: Bundle(identifier: "com.Paiai-iOS")) } }