2015-12-05 28 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) 
}