UISlider,保存状态

时间:2015-12-05 17:03:59

标签: swift nsuserdefaults 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)
}

2 个答案:

答案 0 :(得分:2)

UISlider value属性是一个Float,因此您可以使用NSUserDefault的方法setFloat保存其值,并在下次使用NSUserDefaults方法floatForKey显示视图时检索它。

保存它:

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

加载它:

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

答案 1 :(得分:0)

请按照以下步骤操作。

  1. 将出现在您的视图中。

    fontSlider.setValue(UserDefaults.standard.float(forKey: "slider_value"), animated: false)
    
  2. 从storyBoard处获取另一个渠道作为“ editingDidEnd”。 在该功能中:

    UserDefaults.standard.set(fontSlider.value, forKey: "slider_value")
    
  3. 最后进入您的ValueChanged出口。

    UserDefaults.standard.set(fontSlider.value, forKey: "slider_value")