¿Cómo mantengo el estado de UISwitch cuando cambio ViewControllers?

Cuando me muevo de un controlador de vista a otro, el interruptor del primer controlador se reinicia y no retiene su estado. ¿Cómo puedo hacer que guarde su estado cuando vuelva a él después de ver otros controladores? ¿Y cómo hago para que guarde su estado después de cerrar la aplicación? He examinado las diversas preguntas y respuestas de stackOverflow y la documentación de apple, pero nada parece funcionar.

Aquí está mi clase para el controlador de vista que tiene el interruptor.

class Days: UIViewController {
    @IBOutlet weak var switchButton: UISwitch!
    var switchState = true
    let switchKey = "switchState"
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    @IBAction func saveSwitchPressed(sender:AnyObject) {
        if self.switchButton.on {
            self.switchState = true
            NSUserDefaults.standardUserDefaults().setBool(self.switchState, forKey: switchKey)
            NSUserDefaults.standardUserDefaults().synchronize()
            println(NSUserDefaults.standardUserDefaults().boolForKey(switchKey))
        } else {
            self.switchState = false
            NSUserDefaults.standardUserDefaults().setBool(self.switchState, forKey: switchKey)
            NSUserDefaults.standardUserDefaults().synchronize()
            println(NSUserDefaults.standardUserDefaults().boolForKey(switchKey))
        }
    }
}

Soy un principiante en Swift y, en general, Xcode. Gracias de antemano por su tiempo y ayuda :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta