1

我有两个视图控制器,一个是主要的,第二个是设置视图控制器。我在设置 VC 上有按钮,这些按钮设置为更改设置 VC 和主要设置的背景颜色。它将颜色存储在 NSUserDefaults 中,因此我可以在主视图控制器中访问它。下面是设置 VC 的代码:

let defaults = NSUserDefaults.standardUserDefaults()

@IBAction func red(sender: AnyObject) {
    view.backgroundColor = (UIColor.redColor())
    NSUserDefaults.standardUserDefaults().setObject("red", forKey: "backColor")
    NSUserDefaults.standardUserDefaults().synchronize()

}
@IBAction func green(sender: AnyObject) {
    view.backgroundColor = (UIColor.greenColor())
    NSUserDefaults.standardUserDefaults().setObject("green", forKey: "backColor")
    NSUserDefaults.standardUserDefaults().synchronize()

}
@IBAction func black(sender: AnyObject) {
    view.backgroundColor = (UIColor.blackColor())
    NSUserDefaults.standardUserDefaults().setObject("black", forKey: "backColor")
    NSUserDefaults.standardUserDefaults().synchronize()

我是 Swift 新手,不知道如何根据按下按钮存储在 NSUserDefaults 中的内容来更改/保存主 VC 的背景颜色。有人可以帮帮我吗?

4

1 回答 1

0

viewWillAppear您的主视图控制器中,读取值并根据字符串的值NSUserDefaults设置视图的属性:backgroundColor

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    let defaults = NSUserDefaults.standardUserDefaults()

    // Start color off with a default value       
    var color = UIColor.grayColor()

    if let backColor = defaults.objectForKey("backColor") as? String {
        switch backColor {
            case "red": color = UIColor.redColor()
            case "green": color = UIColor.greenColor()
            case "blue": color = UIColor.blueColor()
            case "black": color = UIColor.blackColor()
            default: break
        }
    }

    view.backgroundColor = color
}
于 2014-12-10T00:35:37.193 回答