【发布时间】:2018-05-10 02:30:52
【问题描述】:
我正在尝试向我的应用程序添加一个主题(深色主题)。因此,当用户单击活动开关时,它将使整个应用程序进入黑暗模式。我对暗模式进行了硬编码,只是为了看看它会是什么样子;但是现在我希望能够通过 UISwitch 启用和禁用它,但我不知道该怎么做?
class DarkModeTableViewCell: UITableViewCell {
var DarkisOn = Bool()
let userDefaults = UserDefaults.standard
@IBOutlet var darkModeSwitchOutlet: UISwitch!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
@IBAction func darkModeSwitched(_ sender: Any) {
if darkModeSwitchOutlet.isOn == true {
//enable dark mode
DarkisOn = true
userDefaults.set(true, forKey: "DarkDefault")
userDefaults.set(false, forKey: "LightDefault")
} else {
//enable light mode
DarkisOn = false
userDefaults.set(false, forKey: "DarkDefault")
userDefaults.set(true, forKey: "LightDefault")
}
}
}
class DarkModeViewController: UIViewController {
func set(for viewController: UIViewController) {
viewController.view.backgroundColor = UIColor(red: 0.1, green: 0.1, blue: 0.1, alpha: 1.0)
viewController.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
viewController.navigationController?.navigationBar.tintColor = UIColor.white
viewController.navigationController?.navigationBar.barStyle = UIBarStyle.black
viewController.tabBarController?.tabBar.barStyle = UIBarStyle.black
}
static let instance = DarkModeViewController()
}
然后我要做的是在每个视图控制器中调用该函数以查看它的外观,但是如果开关打开或关闭,我需要能够访问 bool 值,如果是那么让它做那个功能,否则只是保持不变。如果您还有其他问题,请告诉我,我知道其中一些可能没有多大意义。
【问题讨论】: