@@ -11,10 +11,12 @@ import UIKit
1111import Pulley
1212
1313class ChannelsCoordinator: BaseCoordinator{
14+ let storyboard = UIStoryboard(name: "Main", bundle: nil)
1415 private weak var navigationController: UINavigationController?
1516
1617 init(nc: UINavigationController) {
1718 self.navigationController = nc
19+ navigationController?.navigationItem.largeTitleDisplayMode = .always
1820 }
1921
2022 override func start() {
@@ -22,21 +24,63 @@ class ChannelsCoordinator: BaseCoordinator{
2224 }
2325
2426 private func show() {
25− let storyboard = UIStoryboard(name: "Main", bundle: nil)
2627
2728 let channels = storyboard.instantiateViewController(withIdentifier: channelListControllerId) as! ChannelListController
2829
30+ channels.onChannelSelected = { [weak self]
31+ (channel) in
32+ self?.navigationController?.pushViewController(self!.presentNewsController(with: channel), animated: true)
33+ }
34+ navigationController?.setViewControllers([channels,presentNewsController()], animated: false)
35+ }
36+
37+ private func presentNewsController(with channel: Model.Channels? = nil) -> PulleyViewController {
38+
2939 let mainContentVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: newsController) as! NewsController
40+ mainContentVC.channel = channel
3041
3142 let drawerContentVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "DrawerContentViewController")
3243
3344 let pulleyDrawerVC = PulleyViewController(contentViewController: mainContentVC, drawerViewController: drawerContentVC)
3445
3546 pulleyDrawerVC.initialDrawerPosition = .collapsed
47+
48+
3649 mainContentVC.changedChannelName = {
3750 [weak pulleyDrawerVC] (title) in pulleyDrawerVC?.navigationItem.title = title
3851 }
3952
40− navigationController?.setViewControllers([channels,pulleyDrawerVC], animated: false)
53+ pulleyDrawerVC.navigationItem.rightBarButtonItems = [UIBarButtonItem(barButtonSystemItem: .compose, target: self, action: #selector(writePost(_:)))
54+ ]
55+
56+ return pulleyDrawerVC
57+ }
58+
59+ @objc private func writePost(_ barItem: UIBarButtonItem)
60+ {
61+ let vc = storyboard.instantiateViewController(withIdentifier: "NewPostViewController") as! NewPostViewController
62+
63+ vc.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Post", style: .plain, target: vc, action: #selector(vc.newPost))
64+ vc.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Close", style: .plain, target: vc, action: #selector(vc.closeView))
65+
66+ let transition = CATransition()
67+ transition.duration = 0.5
68+ transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
69+ transition.type = CATransitionType.moveIn
70+ transition.subtype = CATransitionSubtype.fromTop
71+ navigationController?.view.layer.add(transition, forKey: nil)
72+ navigationController?.pushViewController(vc, animated: false)
73+
74+ vc.moveBackToParentVC = {
75+ [weak self] in
76+
77+ let transition = CATransition()
78+ transition.duration = 0.5
79+ transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
80+ transition.type = CATransitionType.reveal
81+ transition.subtype = CATransitionSubtype.fromBottom
82+ self?.navigationController?.view.layer.add(transition, forKey: nil)
83+ self?.navigationController?.popViewController(animated: false)
84+ }
4185 }
4286}