2015-12-05 164 views
0

我的问题是关于UISlider。我设法实现了一切,但我不知道如何保存它的状态。UISlider,保存状态

我看了无处不在但帖子是在旧版本的swift/xcode。所以问题是我如何保存它的状态,以便当我去另一个视图,然后回来的状态仍然是一样的。

非常感谢!

import UIKit 

class SettingsViewController: UIViewController { 

    var sequeInt = 0 

    let savedWordLength = NSUserDefaults.standardUserDefaults() 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    } 

    @IBOutlet weak var wordLength: UISlider! 

    @IBOutlet weak var wordLengthValue: UILabel! 

    var selectedValue: Int = 5 

    @IBAction func valueChanged(sender: UISlider) { 

    selectedValue = Int(sender.value) 

    savedWordLength.setInteger(selectedValue, forKey: "myInt") 

    let ourInt = savedWordLength.integerForKey("myInt") 
    sequeInt = ourInt 
    print (sequeInt) 

    wordLengthValue.text = String(ourInt) 
} 
+0

首先,考虑一下滑块的 “状态” _is_。这个词甚至_mean_是什么?哪些信息需要保存和恢复。然后,阅读关于在视图控制器的实例化之间保存和恢复信息的_any_答案;这非常简单。 – matt

回答

2

UISlider值属性是一个浮点数,所以你可以使用NSUserDefault的方法setFloat保存其价值和未来的看法出现使用方法NSUserDefaults的时间floatForKey检索它。

保存它:

NSUserDefaults.standardUserDefaults().setFloat(sender.value, forKey: "wordLength") 

加载:

所有的
override func viewWillAppear(animated: Bool) { 
    wordLength.setValue(NSUserDefaults.standardUserDefaults().floatForKey("wordLength"), animated: false) 
}