总的来说,我对 Swift 和 iOS 都很陌生。我正在使用 Swift 编写一个应用程序。这个应用程序有两个文件,ViewController.swift
and BTService.swift
.
ViewController.swift
有课ViewController
类型的UIViewController
, and BTService.swift
有课BTService
类型NSObject
and CBPeripheralDelegate
。我在其中设置了一个滑块UIViewController
类,并将其值分配给变量currentValue
.
现在,我希望能够参考currentValue
从内部BTService
班级。我该怎么做呢?我注意到如果我定义一个变量,test
,在文件中ViewController
before班上UIViewController
, 我can参考test
in BTService
。但这对我来说没有用,因为我无法(据我所知)将滑块值分配给测试,除非测试是在UIViewController
class.
这是我的 ViewController 和 currentValue 变量定义。
class ViewController: UIViewController {
@IBOutlet var positionLabel: UILabel!
@IBOutlet var positionSlider: UISlider!
@IBOutlet var connectionLabel: UILabel!
@IBAction func sliderValChanged(sender: UISlider) {
var currentValue = Float(positionSlider.value)
任何帮助将不胜感激!谢谢。
您可以使用NSUserDefaults https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html在应用程序中存储数据并在视图控制器之间共享数据。
在您给出的示例中,您可以像这样存储它:
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.setFloat(Float(positionSlider.value), forKey: "sliderValue") // Write to NSUserDefaults
defaults.synchronize()
然后,每当您需要在另一个文件(或这个文件)中访问它时,您只需调用floatForKey
:
if let currentValue: Float = defaults.floatForKey("sliderValue") {
// Access slider value
} else {
// Probably not saved
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)