You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.6 KiB

  1. //
  2. // TablePresenterWireframe.swift
  3. // GME Remit
  4. //
  5. // Created by InKwon Devik Kim on 26/06/2019.
  6. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. enum TablePresenterType {
  10. case branches(countryCode: String, bankID: String)
  11. case `default`
  12. }
  13. class TablePresenterWireframe {
  14. weak var view: UIViewController!
  15. private weak var delegate: TablePresenterDelegate?
  16. private var model: [TablePresenterProtocol]?
  17. private var type: TablePresenterType = .default
  18. }
  19. extension TablePresenterWireframe: TablePresenterWireframeInput {
  20. var storyboardName: String {return "TablePresenter"}
  21. func getMainView() -> UIViewController {
  22. let service = TablePresenterService()
  23. let interactor = TablePresenterInteractor(service: service, model: model)
  24. let presenter = TablePresenterPresenter()
  25. let viewController = viewControllerFromStoryboard(of: TablePresenterViewController.self)
  26. viewController.presenter = presenter
  27. viewController.delegate = delegate
  28. viewController.type = type
  29. interactor.output = presenter
  30. presenter.interactor = interactor
  31. presenter.wireframe = self
  32. presenter.view = viewController
  33. view = viewController
  34. return viewController
  35. }
  36. func openWith(
  37. tag: Int = 0,
  38. type: TablePresenterType = .default,
  39. delegate: TablePresenterDelegate?,
  40. model: [TablePresenterProtocol]?,
  41. source: UIViewController
  42. ) {
  43. self.delegate = delegate
  44. self.model = model
  45. self.type = type
  46. let vc = getMainView()
  47. vc.view.tag = tag
  48. source.present(vc, animated: true, completion: nil)
  49. }
  50. }