如何使用swift使用动作中的数据创建全局变量

时间:2016-09-07 07:13:29

标签: swift

我想用" sliderValue"中的数据创建一个全局变量。我该怎么做

@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
    self.view.backgroundColor = UIColor(red: 66.0/255, green: 150.0/255, blue: 65.0/255, alpha: 1.0)
}

@IBAction func slider(sender: UISlider) {
    var sliderValue = lroundf(sender.value)
    label.text = "\(sliderValue)"
}

3 个答案:

答案 0 :(得分:0)

您需要做的就是在类中定义一个变量。像这样:

var sliderValue: Int

我认为这是您正在使用的方法的正确数据类型,但会根据需要进行更改。

答案 1 :(得分:0)

你可以简单地把它当作下面的

var globeRateVal : Float = 1.0
//initialize value by slider default value.

然后在你的代码滑块方法或任何设置如此

globeRateVal = slider.value

你仍然有困惑随意问我。

答案 2 :(得分:0)

如果您想从任何文件或类中访问sliderValue的数据,就可以这样做。

*出于结构目的,创建一个新的.Swift文件来管理全局数据变量(例如SharedData.swift)

第一步

SharedData.Swift中写下以下内容:

class SharedDataRecord {
    class var sharedInstanceRec: SharedDataRecord {
        struct Static {
            static var instance: SharedDataRecord?
            static var token: dispatch_once_t = 0
        }

        dispatch_once(&Static.token) {
            Static.instance = SharedDataRecord()
        }
        return Static.instance!
    }

    var sliderValue : Int
    var sliderName: String = ""
    var sliderAge: Int

}

这个课程可以帮助你保存"任何数据进入sliderValue即Int。同时说你有更多想要保存的变量,所以你只需像我一样在它下面添加更多变量。

下一步

.Swift文件中,您需要获得sliderValue数据..

  1. SharedDataRecord类存储在变量
  2. 然后,在获得sliderValue的数据后,您将该数据设置为SharedDataRecord中的属性,就像我在下面所做的那样。

     class mainVC : UIViewController {
    
    var sharedData = SharedDataRecord.sharedInstanceRec
    
    @IBOutlet weak var label: UILabel!
        override func viewDidLoad() {
    
            self.view.backgroundColor = UIColor(red: 66.0/255, green: 150.0/255, blue: 65.0/255, alpha: 1.0)
    
        }
    
        @IBAction func slider(sender: UISlider) {
            var sliderValue = lroundf(sender.value)
            label.text = "\(sliderValue)"
    
            self.sharedData.sliderValue = sliderValue
    
        }
    

    }

  3. 第三步

    运行该功能后,sliderValue数据将保存在self.sharedData.sliderValue中,您可以在应用中的任何其他位置使用该数据。

    你只需要再次将类添加到变量中,只需调用属性:

    class secondVC : UIViewController {
    
    var sharedData = sharedDataRecord.sharedInstanceRec
    
    override func viewWillAppear(animated: Bool) {
    
    print(self.sharedData.sliderValue)
    
    }
    
    }
    

    更简单的方法

    class viewController : UIViewController {
    
        var sliderValue : Int = 66
    
    
        @IBOutlet weak var label: UILabel!
        override func viewDidLoad() {
            self.view.backgroundColor = UIColor(red: 66.0/255, green: 150.0/255, blue: 65.0/255, alpha: 1.0)
        }
    
        override func viewWillAppear() {
    
            if sliderValue != nil {
    
                let red = CGFloat((sliderValue & 0xFF0000) >> 16) / 255.0
    
                self.view.backgroundColor = UIColor(red: red, green: 150.0/255, blue: 65.0/255, alpha: 1.0)
    
           } else {
    
               return
    
        }
    
        }
    
        @IBAction func slider(sender: UISlider) {
            sliderValue = lroundf(sender.value)
            label.text = "\(sliderValue)"
        }