|
//
// PhotoDetailCoordinator.swift
// Paiai_iOS
//
// Created by FFIB on 2018/12/19.
// Copyright © 2018 FFIB. All rights reserved.
//
import UIKit
import RxSwift
import PaiaiDataKit
final class PhotoDetailCoordinator: BaseCoordinator<Void> {
let photoDetailViewController: PhotoDetailViewController
let shareViewModel: PhotoDetailViewModel
init(_ viewController: PhotoDetailViewController,
nav: UINavigationController,
viewModel: PhotoDetailViewModel) {
self.photoDetailViewController = viewController
self.shareViewModel = viewModel
photoDetailViewController.viewModel = viewModel
super.init(navigationController: nav, viewController: viewController)
}
override func start() -> Observable<Void> {
photoDetailViewController.viewModel.delegate = self
return didCancel
}
}
extension PhotoDetailCoordinator: PhotoDetailViewModelDelegate {
func navigateToGroup(_ item: GroupItem, photoItems: [PhotoItem]) {
let vc = GroupViewController.instantiate()
vc.viewModel = GroupViewModel(groupItem: item, items: photoItems)
let coordinator = GroupCoordinator(vc,
navigationController: navigationController,
navigationSource: .photoDetail)
coordinate(to: coordinator).subscribe().disposed(by: disposeBag)
navigationController.pushViewController(vc)
}
func didSelected() {
let vc = PhotoPreviewViewController.instantiate()
vc.viewModel = shareViewModel
photoDetailViewController.presentController(vc)
}
}
extension UIStoryboard {
static var photoDetail: UIStoryboard {
return UIStoryboard(name: "PhotoDetail", bundle: Bundle(identifier: "com.Paiai-iOS"))
}
}
|