Skip to content

Instantly share code, notes, and snippets.

@chriswebb09
Created June 9, 2017 04:44
Show Gist options
  • Save chriswebb09/d5f237542d285f710af18ae2daf78fa2 to your computer and use it in GitHub Desktop.
Save chriswebb09/d5f237542d285f710af18ae2daf78fa2 to your computer and use it in GitHub Desktop.
import UIKit
class MainCoordinator: ApplicationCoordinator {
var window: UIWindow
var appCoordinator: Coordinator!
init(window: UIWindow?) {
guard let window = window else { fatalError("Invalid, no window") }
self.window = window
}
func setup(coordinator: Coordinator) {
appCoordinator = coordinator
appCoordinator.delegate = self
}
func start() {
guard let coordinator = appCoordinator else { return }
coordinator.start()
window.makeKeyAndVisible()
}
}
extension MainCoordinator: CoordinatorDelegate {
func transitionCoordinator(type: CoordinatorType) {
switch type {
case .app:
break
case .tabbar:
let tabbarController = TabBarController()
let tabbBarCoordinator = TabBarCoordinator(tabBarController: tabbarController)
tabbBarCoordinator.window = window
let firstViewController = FirstViewController()
let mediaTab = UINavigationController(rootViewController: firstViewController)
tabbBarCoordinator.setup(navigationController: mediaTab)
let secondViewController = SecondViewController()
let settingsTab = UINavigationController(rootViewController: secondViewController)
tabbBarCoordinator.setup(navigationController: settingsTab)
appCoordinator = tabbBarCoordinator
start()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment