我试图让某个 View 上的 slider 值显示在 subview 上的文本框中。但是当第二个 View 加载时, slider 的值似乎丢失并设置为 nil。在 View 更改之前如何保留该 slider 的值以便在 subview 中使用最新的值?这是一些相关代码(我想将文本框“redTextBox”设置为“changeRed” slider 的值):
家长类--------------------------------
class ViewController: UIViewController {
@IBOutlet weak var changeRed: UISlider!
@IBOutlet weak var changeGreen: UISlider!
@IBOutlet weak var changeBlue: UISlider!
var r: Float = 0
var g: Float = 0
var b: Float = 0
@IBAction func slideRed(sender: AnyObject) {
self.view.backgroundColor = UIColor(colorLiteralRed: changeRed.value, green: changeGreen.value, blue: changeBlue.value, alpha: 1.0)
r = changeRed.value
g = changeGreen.value
b = changeBlue.value
}
@IBAction func slideGreen(sender: AnyObject) {
self.view.backgroundColor = UIColor(colorLiteralRed: changeRed.value, green: changeGreen.value, blue: changeBlue.value, alpha: 1.0)
r = changeRed.value
g = changeGreen.value
b = changeBlue.value
}
@IBAction func slideBlue(sender: AnyObject) {
self.view.backgroundColor = UIColor(colorLiteralRed: changeRed.value, green: changeGreen.value, blue: changeBlue.value, alpha: 1.0)
r = changeRed.value
g = changeGreen.value
b = changeBlue.value
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = UIColor(colorLiteralRed: changeRed.value, green: changeGreen.value, blue: changeBlue.value, alpha: 1.0)
}
......
}
<小时/>
child 类----------------------------------------
class ColorValueVC: ViewController {
@IBOutlet weak var redTextBox: UITextField!
@IBOutlet weak var greenTextBox: UITextField!
@IBOutlet weak var blueTextBox: UITextField!
override func viewDidLoad() {
//super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
redTextBox.text = "\(changeRed.value)"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
<小时/>
最佳答案
您的 subview Controller 继承自父 View Controller 。你想通过这样做来实现什么目的?如果它们是两个 View Controller ,其中一个 View Controller 连接到另一个 View Controller ,那么它们之间不应该存在继承链接。相反,您可以通过在 A 中实现 prepareForSegue
将数据从 A 传递到 B。
关于ios - Xcode 7/Swift : Save value of slider and send to child class when view changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422622/