Ich habe einen Schalter eingerichtet, mit dem der Benutzer die Hintergrundfarbe ändern kann (dunkler Modus). Dies funktioniert nur auf dem View-Controller, mit dem der Code verknüpft ist. Wie würde ich es einstellen, wenn der Schalter in entweder dunklen oder hellen Modus aktiviert wird, würde sich jeder Ansichtscontroller in meiner Anwendung ändern, nicht nur der eine. Heres mein Code:Swift 3 - Ändern der Hintergrundfarbe aller View-Controller über den Schalter (Dunkelmodus/Nachtmodus)
import UIKit
Klasse Darkmode: UIViewController {
@IBOutlet var DarkSwitch: UISwitch!
@IBOutlet var LightSwitch: UISwitch!
var DarkisOn = Bool()
var LightisOn = Bool()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let DarkDefault = UserDefaults.standard
DarkisOn = DarkDefault.bool(forKey: "DarkDefault")
let LightDefault = UserDefaults.standard
LightisOn = LightDefault.bool(forKey: "LightDefault")
if (DarkisOn == true) {
DarkSwitch.isOn = true
LightSwitch.isOn = false
//run dark theme
DarkTheme()
}
if (LightisOn == true) {
DarkSwitch.isOn = false
LightSwitch.isOn = true
//run light theme
LightTheme()
}
}
func DarkTheme() //dark colour
{
self.view.backgroundColor = UIColor(red: 0.1, green: 0.1, blue: 0.1, alpha: 1.0)
}
func LightTheme() //light colour
{
self.view.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
}
@IBAction func DarkAction(_ sender: Any)
{
DarkSwitch.isOn = true
LightSwitch.isOn = false
//run dark theme func
DarkTheme()
let DarkDefault = UserDefaults.standard
DarkDefault.set(true, forKey: "DarkDefault")
let LightDefault = UserDefaults.standard
LightDefault.set(false, forKey: "LightDefault")
}
@IBAction func LightAction(_ sender: Any)
{
DarkSwitch.isOn = false
LightSwitch.isOn = true
//run light theme func
LightTheme()
let DarkDefault = UserDefaults.standard
DarkDefault.set(false, forKey: "DarkDefault")
let LightDefault = UserDefaults.standard
LightDefault.set(true, forKey: "LightDefault")
}
}
Wahrscheinlich ist der einfachste Weg, sie alle von einem ableiten, die ViewDidLoad überschreibt, mit Code wie diesem. –
Diese [tutorial] (https://www.raywenderlich.com/156036/uiappearance-tutorial-getting-started) könnte Ihnen helfen. –
Aus Liebe zu Gott, lies bitte einen Style Guide. Ich weiß nicht einmal, wo ich anfangen soll. –