Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mickspecial/aafec7c92c101cb523ee9422300a2532 to your computer and use it in GitHub Desktop.
Save mickspecial/aafec7c92c101cb523ee9422300a2532 to your computer and use it in GitHub Desktop.
Set Up
class MainTabBarController: UITabBarController {
let mainCoordinator = MainCoordinator()
var home: BreathingVC!
var settings: SettingsVC!
var presets: PresetsTVC!
var breathSettings: BreathSettingVC!
override func viewDidLoad() {
super.viewDidLoad()
mainCoordinator.tabCtrl = self
let home = BreathingVC(coordinator: mainCoordinator, modelCtrl: mainCoordinator.modelController)
home.tabBarItem = UITabBarItem(title: "Home", image: #imageLiteral(resourceName: "breath"), tag: 0)
let bvc = BreathSettingVC(mainCoordinator.modelController, coordinator: mainCoordinator)
bvc.tabBarItem = UITabBarItem(title: "Breath", image: #imageLiteral(resourceName: "settingsSicon"), tag: 1)
let presets = PresetsTVC(modelCtrl: mainCoordinator.modelController, coordinator: mainCoordinator)
presets.tabBarItem = UITabBarItem(title: "Presets", image: #imageLiteral(resourceName: "favs"), tag: 2)
settings = SettingsVC(mainCoordinator.modelController, userCtrl: mainCoordinator.userController, iapCtrl: mainCoordinator.iapController, coordinator: mainCoordinator)
settings.tabBarItem = UITabBarItem(title: "Theme", image: #imageLiteral(resourceName: "themeicon"), tag: 3)
let statsvc = StatsViewController(modelCtrl: mainCoordinator.modelController)
statsvc.tabBarItem = UITabBarItem(title: "Stats", image: #imageLiteral(resourceName: "charticon"), tag: 4)
viewControllers = [
UINavigationController(rootViewController: home),
UINavigationController(rootViewController: bvc),
UINavigationController(rootViewController: presets),
UINavigationController(rootViewController: settings),
UINavigationController(rootViewController: statsvc)
]
}
}
protocol Coordinator {
var childCoordinators: [Coordinator] { get set }
var navigationController: UINavigationController { get set }
func start()
}
class MainCoordinator: Coordinator {
var childCoordinators = [Coordinator]()
var navigationController: UINavigationController
var modelController: BreathModelController
var userController: UserController
var iapController: IAPController
var tabCtrl: UITabBarController!
init(navigationController: UINavigationController = UINavigationController()) {
self.navigationController = navigationController
self.userController = UserController()
self.modelController = BreathModelController()
self.iapController = IAPController()
}
func start() { }
}
// Im setting all this up from the App Delegate - No Storyboards
// tabBarController = MainTabBarController()
// window = UIWindow(frame: UIScreen.main.bounds)
// window?.rootViewController = tabBarController
// window?.tintColor = .darkGray
// window?.makeKeyAndVisible()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment