Skip to content

Instantly share code, notes, and snippets.

@mczachurski
Created January 21, 2018 08:12
Show Gist options
  • Save mczachurski/d95e76b47789f36a632333ff2f64ef61 to your computer and use it in GitHub Desktop.
Save mczachurski/d95e76b47789f36a632333ff2f64ef61 to your computer and use it in GitHub Desktop.
import Foundation
import UIKit
class BaseViewController: UIViewController {
var settingsHandler = SettingsHandler()
var settings:Settings!
// MARK: - View loading
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(darkModeEnabled(_:)), name: .darkModeEnabled, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(darkModeDisabled(_:)), name: .darkModeDisabled, object: nil)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.settings = self.settingsHandler.getDefaultSettings()
self.settings.isDarkMode ? enableDarkMode() : disableDarkMode()
}
deinit {
NotificationCenter.default.removeObserver(self, name: .darkModeEnabled, object: nil)
NotificationCenter.default.removeObserver(self, name: .darkModeDisabled, object: nil)
}
// MARK: - Theme
@objc func darkModeEnabled(_ notification: Notification) {
enableDarkMode()
}
@objc func darkModeDisabled(_ notification: Notification) {
disableDarkMode()
}
open func enableDarkMode() {
self.view.backgroundColor = UIColor.black
self.navigationController?.navigationBar.barStyle = .black
}
open func disableDarkMode() {
self.view.backgroundColor = UIColor.white
self.navigationController?.navigationBar.barStyle = .default
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment