Skip to content

Instantly share code, notes, and snippets.

@ksmandersen
Created June 29, 2016 08:42
Show Gist options
  • Save ksmandersen/76ff42cacada9d119cbc938d48e68cf8 to your computer and use it in GitHub Desktop.
Save ksmandersen/76ff42cacada9d119cbc938d48e68cf8 to your computer and use it in GitHub Desktop.
import UIKit
import GenericViewKit
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
private let applicationController = ApplicationController()
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
applicationController.configureReporting()
configureWindow()
return true
}
private func configureWindow() {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.rootViewController = applicationController.rootViewController
window?.makeKeyAndVisible()
}
}
class RootViewController: GenericViewController<GenericView> {
private(set) unowned var applicationController: ApplicationController
private(set) var mainViewController: UIViewController?
init(applicationController: ApplicationController) {
self.applicationController = applicationController
super.init()
}
func configureMainViewController(viewController: UIViewController) {
if let mainViewController = self.mainViewController {
mainViewController.view.removeFromSuperview()
mainViewController.removeFromParentViewController()
}
mainViewController = viewController
mainViewController?.willMoveToParentViewController(self)
addChildViewController(viewController)
view.addSubview(viewController.view)
mainViewController?.didMoveToParentViewController(self)
viewController.view.setEdgesEqualToSuperview()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment