ViewController中的函数无法访问UISlider值

时间:2016-09-20 13:50:55

标签: ios swift xcode

我收到一条错误,说“EXC_BAD_INSTRUCTION ...”,指的是尝试使用redSlider.value从另一个文件为我的“Color”类型的属性设置一个值。(也粘贴在下面)

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBOutlet weak var colorView: UIView!
    @IBOutlet weak var redSlider: UISlider!
    @IBOutlet weak var greenSlider: UISlider!
    @IBOutlet weak var blueSlider: UISlider!

    func updateCurrentColor() {
        var currentColor = Color(red: redSlider.value, green: greenSlider.value, blue: blueSlider.value)
        print("CurrentColor updated!!!")
    }
}

这是我的“颜色”类型(在另一个文件中):

import Foundation

struct  Color {
    var red = Float()
    var green = Float()
    var blue = Float()
}

Here is my ViewController

我从main.swift

调用updateCurrentColor()
import Foundation
import UIKit

ViewController().updateCurrentColor()

1 个答案:

答案 0 :(得分:0)

ViewController()创建一个新的视图控制器对象。由于您没有在屏幕上显示它,因此它的插座永远不会被初始化。这意味着!末尾的redSlider: UISlider!是谎言。

即使它没有崩溃,更新你没有放在屏幕上的东西的颜色听起来也不是很有用。

使用您已有的ViewController而不是创建新的。{/ p>