ios – 如何让按钮在Swift中收听分段控件?

我正在尝试构建温度转换器应用程序.我使用分段控制来为用户选择如何计算温度(摄氏度到华氏度以及从华氏度到摄氏度).我还创建了一个按钮,用于转换分段控件中所选方法输入的温度.

这是我在控制器中创建的功能:

@IBAction func convertTemp(sender: AnyObject) {
    let t = Double(tempTextfield.text!)
    let type = converterType.selectedSegmentIndex
    let tempM = tempModel(temp:t!)

    if type == 0 {
        finalTemp.text = String(tempM.celsius2Fahrenheit())
    }

    if type == 1 {
        finalTemp.text = String(tempM.fahrenheit2Celsius())
    }
}

这就是我的模型中的内容.

class tempModel {
  var temp: Double

  init (temp:Double){
    self.temp = temp
  }
  func celsius2Fahrenheit()->Double{
    return 32 + temp * 5 / 9;
  }
  func fahrenheit2Celsius()->Double{
    return (temp - 32) * 5/9;  
  }
}

我不确定我做错了什么.除了按钮(转换)之外的所有东西都以我希望它工作的方式工作.我似乎无法找到错误.

我不知道这是否有帮助,但我收到此错误:

2015-11-16 18:07:02.496 TemperatureConverer[5201:194432] Can’t find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 4131139949_Portrait_iPhone-Simple-Pad_Default
2015-11-16 18:07:04.827 TemperatureConverer[5201:194432] Can’t find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 4131139949_Portrait_iPhone-Simple-Pad_Default
(lldb)

最佳答案 我发现了一个临时修复.我的问题是我的viewController和我的tempModel之间的通信.当我删除tempModel类并将方法直接插入控制器中的函数时,我的代码工作.

所以在我的控制器中,我有这个..

@IBAction func convertTemp(sender: AnyObject) {

    let temp = Double(tempTextfield.text!)!
    var newTemp = ""

    if converterType.selectedSegmentIndex == 0{
        newTemp = String(format: "%.2f Farenheit", 32+temp*5/9)
    }
    if converterType.selectedSegmentIndex == 1{
        newTemp = String(format: "%.2f Celsius",(temp-32)*5/9)
    }
    finalTemp.text = newTemp
}

我知道最终我必须学习如何将我的控制器和模型链接在一起.但直到我弄明白,这是一个解决我的问题的解决方案.

点赞