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