Aucune description

GroupCoordinator.swift 2.2KB

    // // GroupCoordinator.swift // Paiai_iOS // // Created by ffib on 2019/1/29. // Copyright © 2019 yb. All rights reserved. // import UIKit import PaiaiDataKit class GroupCoordinator: Coordinator { let navigationController: UINavigationController let groupViewController: GroupViewController var coordinators: [CoordinatorKey: Coordinator] = [:] init(_ groupVC: GroupViewController, navigationController: UINavigationController) { self.groupViewController = groupVC self.navigationController = navigationController groupViewController.viewModel.delegate = self } } extension GroupCoordinator: GroupViewModelDelegate { func navigateToGroupDetail(_ item: GroupItem) { let coordinator = GroupDetailCoordinator(makeGroupDetailViewController(item), navigationController: navigationController) coordinators[.groupDetail] = coordinator navigationController.pushViewController(coordinator.groupDetailViewController) } func didSelect(_ items: [PhotoItem], currIndex: Int) { let ctl = UIStoryboard.photoDetail.instantiateController(PhotoDetailViewController.self) let viewModel = PhotoDetailViewModel(item: items[currIndex]) viewModel.isHiddenEnterGroupBtn.accept(true) let coordinator = PhotoDetailCoordinator(ctl, nav: navigationController, viewModel: viewModel, listViewModel: PhotoDetailListViewModel(items: items, currIndex: currIndex)) coordinators[.photoDetail] = coordinator coordinator.start() navigationController.pushViewController(coordinator.photoDetailViewController) } } fileprivate extension GroupCoordinator { func makeGroupDetailViewController(_ item: GroupItem) -> GroupDetailViewController { let vc = UIStoryboard.groupDetail.instantiateController(GroupDetailViewController.self) vc.viewModel = GroupDetailViewModel(item: item) return vc } } extension UIStoryboard { static var group: UIStoryboard { return UIStoryboard(name: "Group", bundle: Bundle(identifier: "com.Paiai-iOS")) } }