ios - 如何设置我的 UISlider 和 UISwitch 的初始值?

标签 ios oop swift

我有一个类:

class DiscoverySettings {
    var alert:Bool
    var distance:Int
    var minAge: Int
    var maxAge: Int
    private init(){
        alert = true
        distance = 50
        minAge = 18
        maxAge = 25
    }
}

在另一个 Controller 中,我这样做:

var discovery_model = DiscoverySettings()
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == Constants.EditDiscoverSegue {
            if let dseg = segue.destinationViewController.contentViewController as? DiscoverySettingsViewController {
                dseg.dsettings = discovery_model
            }
        }
    }

这是我在 updateUI() 中进行初始设置的地方:

@IBOutlet weak var distanceSlider: UISlider!
@IBOutlet weak var alertSwitch: UISwitch!

var dsettings: DiscoverySettings? {
    didSet{
        updateUI()
    }
}

let ageSlider = RangeSlider(frame: CGRectZero)

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

func updateUI(){
    self.distanceSlider.value = Float(dsettings?.distance) //error
    self.alertSwitch = dsettings?.alert //error
}

我在设置值的行上收到诸如“找不到接受提供的参数的 init 的重载”和“找不到重载 NSNumber 不是 UISwitch 的子类型”之类的错误。

我不确定为什么会发生这些错误,因为我在我的类中定义了相同的类型。

最佳答案

试试下面的代码:

func updateUI(){
    if let dsettings = dsettings {
        self.distanceSlider?.value = Float(dsettings.distance)
        self.alertSwitch?.on = dsettings.alert
    }
}

关于ios - 如何设置我的 UISlider 和 UISwitch 的初始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29459370/

相关文章:

ios - 左下角重叠单元格

ios - Swift:什么时候执行 Dismiss View 的完成 block ?

iphone - 如何让用户从他的相机胶卷或照片库中挑选一张照片?

c# - 共享多级功能的最佳实践

swift - 当键盘出现在 Swift 中时移动屏幕

xcode - Swift:查看包括扩展在内的完整类 API

ios - 如何通过 Facebook 广告点击将 IDFA 发送到 Google Analytics?

ios - 根据标签文本的大小创建具有动态高度的 UILabel

java - 如何使用字符串输入访问现有对象(将字符串输入转换为对象名称)

python - 只初始化一次类变量