繁体   English   中英

Swift 3,从ViewControler访问用户输入文本字段值,并在模型.swift文件中使用它们

[英]Swift 3, accessing user input Text Field values from ViewControler and used them in a model .swift file

这是我的第一个问题。 我是swift和编程的新手,所以如果我问愚蠢的问题请不要笑

所以我有一个SettingsViewControler,用户可以设置它们的值,让我们设置温度值。 我正在尝试做的是获取他们输入的温度值并将其传递给我的model.swift文件,在公式中引入该值,以使用输入温度计算新值。 我希望这是有道理的。

有没有办法通过将类表单VC调用到我在model.swift文件中创建的newData类来直接执行此操作,或者我应该使用某些方法(如UserDefaults)来传递数据。

这是代码示例:

首先,我创建了一个Settings.swift文件

      // Settings.swift file

import Foundation

class Settings {

var inputTemperature: Float = 0


init(inputTemperature: Float) {

    self.inputTemperature = inputTemperature
}

}

这是设置视图控制器

  //Settings ViewCOntroller. swift file

import UIKit

class SettingsViewController: UIViewController {

@IBOutlet weak var inputTemperatureTextField: UITextField!

var getTemp = Settings(inputTemperature: 72)

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

func getValues() {

    getTemp.inputTemperature = (inputTemperatureTextField.text! as NSString).floatValue

}

 }else if textField == inputTemperatureTextField {
        textField.resignFirstResponder()
        getValues()


}

所以现在我有另一个Calculations.swift文件,我想获取inputTemperature值以在公式中使用它

 //Calculation. swift file

import Foundation

class Calculations {

var inputA: Float = 0
var inputB: Float = 0
var resultC: Float =  0


init(inputA: Float, inputB: Float) {

    self.inputA = inputA
    self.inputB = inputB

   }

   // Here i want to add the temperature value 
   func calc() {

    resutC = inputA * inputC // * inputTemperature

   }

我想从SettingsView COntroller获取get(inputTemperatureTextField.text!as NSString).floatValue值,将其引入位于Calculation.swift文件中的公式

谢谢

您应该发布一些代码,以便让我们深入了解您想要的内容。 让我们在你的模型中说你有温度值

var temp: Int?

然后,您可以在VC中初始化它,并访问临时值

var model = Model()

let model.temp = inputTextField.text

如果您使用model.swift进行计算。 您将在View控制器中创建模型类的对象,在创建对象后,您可以将测试字段值传递给模型。

var modelObject: model? = model();
modelObject.temprature = txtTemprature.text;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM