Q:

Changing background color of all views in project from one view controller?

In my app I have a settings view in which you can change the background color of the app.
I need a way to change the background color of all the views from one view controller.
How do I go about achieving this?

A:

I recommend you to create a singleton object, which will store app's settings and save it. Provide a background property in this service, then you can get it wherever you want.
UPDATE:
Here is the SettingsService singleton:
import Foundation
import UIKit

class SettingsService {

    class var sharedService : SettingsService {
        struct Singleton {
            static let instance = SettingsService()
        }
        return Singleton.instance
    }

    init() { }

    var backgroundColor : UIColor {
        get {
            var data: NSData? = NSUserDefaults.standardUserDefaults().objectForKey("backgroundColor") as? NSData
            var returnValue: UIColor?
            if data != nil {
                returnValue = NSKeyedUnarchiver.unarchiveObjectWithData(data!) as? UIColor
            } else {
                returnValue = UIColor(white: 1, alpha: 1);
            }
            return returnValue!
        }
        set (newValue) {
            let data = NSKeyedArchiver.archivedDataWithRootObject(newValue)
            NSUserDefaults.standardUserDefaults().setObject(data, forKey: "backgroundColor")
            NSUserDefaults.standardUserDefaults().synchronize()
        }
    }
}

It has a backgroundColor property which uses NSUserDefaults to store value and init a default value if there is no any in user defaults.
Now you can use it to set value in the settings view:
func backgroundColorChanged(color : UIColor) {
    SettingsService.sharedService.backgroundColor = color;
}

And use it, for example, in viewDidLoad() method:
override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = SettingsService.sharedService.backgroundColor;
}

