Skip to content

Instantly share code, notes, and snippets.

@ytyubox
Last active June 6, 2019 04:48
Show Gist options
  • Save ytyubox/db03a103c082e0a424b91affbb644343 to your computer and use it in GitHub Desktop.
Save ytyubox/db03a103c082e0a424b91affbb644343 to your computer and use it in GitHub Desktop.
A good way to route by Coordinator

usage

class AppDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        let tabC = UITabBarController()
        let mC = MCoordinator()
        
        coordinator = MainCoordinator(tabBarController: tabC, tabs: [mC])
        coordinator?.start()
        window?.rootViewController = tabC
        return true
    }
}
import UIKit.UITabBarController
import UIKit.UINavigationController
import UIKit.UIViewController
import UIKit.UITabBarItem
protocol Coordinator {
var childCoordinators: [Coordinator] { get set }
func start()
var rootViewController:UIViewController {get}
}
protocol NavigationCoordinator:Coordinator {
var navigationController: UINavigationController? { get set }
}
protocol TabBarCoordinator:Coordinator {
var tabBarController:UITabBarController? {get set}
var tabBarItem:UITabBarItem? {get}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment