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.
63 lines
2.1 KiB
63 lines
2.1 KiB
//
|
|
// WireframeInput.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by gme_2 on 24/08/2018.
|
|
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
protocol WireframeInput {
|
|
var window: UIWindow? {get}
|
|
weak var view: UIViewController! {get}
|
|
var storyboardName: String {get}
|
|
func openMainView(source: UIViewController)
|
|
func pushMainView(on source: UIViewController)
|
|
func pushMainView(in source: UINavigationController)
|
|
func getMainView() -> UIViewController
|
|
func openMainViewIn(window: UIWindow)
|
|
func openViewControllerWithNavigation(viewController: UIViewController, source: UIViewController)
|
|
}
|
|
|
|
extension WireframeInput {
|
|
var window: UIWindow? {
|
|
return (UIApplication.shared.delegate as! AppDelegate).window
|
|
}
|
|
|
|
func viewControllerFromStoryboard<T: UIViewController>(of type: T.Type) -> T {
|
|
return UIStoryboard(name: storyboardName, bundle: nil).instantiateViewController(withIdentifier: String(describing: T.self)) as! T
|
|
}
|
|
|
|
func openMainViewIn(window: UIWindow) {
|
|
let view = self.getMainView()
|
|
window.rootViewController = view
|
|
}
|
|
|
|
func openMainViewAsNavigationControllerIn(window: UIWindow) {
|
|
let view = self.getMainView()
|
|
let nav = UINavigationController.init(rootViewController: view)
|
|
window.rootViewController = nav
|
|
}
|
|
|
|
func openMainView(source: UIViewController) {
|
|
let mainView = self.getMainView()
|
|
source.present(mainView, animated: true, completion: nil)
|
|
}
|
|
|
|
func pushMainView(on source: UIViewController) {
|
|
let mainView = self.getMainView()
|
|
source.navigationController?.pushViewController(mainView, animated: true)
|
|
}
|
|
|
|
func pushMainView(in source: UINavigationController) {
|
|
let mainView = self.getMainView()
|
|
source.pushViewController(mainView, animated: true)
|
|
}
|
|
|
|
func openViewControllerWithNavigation(viewController: UIViewController, source: UIViewController) {
|
|
let nav = UINavigationController(rootViewController: viewController)
|
|
source.present(nav, animated: true, completion: nil)
|
|
}
|
|
|
|
}
|