|
//
// 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"))
}
}
|