我的问题是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 :(得分: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)
请按照以下步骤操作。
将出现在您的视图中。
fontSlider.setValue(UserDefaults.standard.float(forKey: "slider_value"), animated: false)
从storyBoard处获取另一个渠道作为“ editingDidEnd”。 在该功能中:
UserDefaults.standard.set(fontSlider.value, forKey: "slider_value")
最后进入您的ValueChanged出口。
UserDefaults.standard.set(fontSlider.value, forKey: "slider_value")