2017-06-20 5 views
1

これは私の最初の質問です。私は迅速かつプログラミング一般的ですので、私は愚かな質問をしている場合は笑わないでください:)Swift 3、ViewControlerのユーザー入力テキストフィールド値にアクセスし、モデル.swiftファイルで使用しました

私は、ユーザーが値を設定するSettingsViewControlerので、温度値を設定すると言うことができます。私がしようとしていることは、入力した温度値を使ってmodel.swiftファイルに渡し、その値を数式に導入して、入力温度で新しい値を計算することです。私はこれが意味をなさないことを望む。

私はmodel.swiftファイルで作成したnewDataクラスにクラスフォームVCを呼び出すことで、直接行う方法がありますか、またはデータを渡すためにUserDefaultsのようなメソッドを使用する必要があります。ここで

は、コード例です:

まず私はここで

 // Settings.swift file 

import Foundation 

class Settings { 

var inputTemperature: Float = 0 


init(inputTemperature: Float) { 

    self.inputTemperature = inputTemperature 
} 

} 

Settings.swiftファイルを作成した設定のビューコントローラ

ある
//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 

    } 

私はget(inputTemperatureTextField.text! NSStringのよう)にある式でそれを紹介するSettingsViewコントローラから.floatValue値は

おかげ

+0

モデルクラスの温度を取得し、モデルのインスタンスをviewControllerで作成し、初期化メソッドで温度を渡すことができます。 –

答えて

0

ファイルCalculation.swiftあなたは本当に私たちに、それはあなたがしたいです正確に何でいくつかの洞察力を与えるためにあなたのコードの一部を投稿する必要があります。 は、あなたが次にあなたのVCでそれを初期化することができます

var temp: Int? 

のような温度値を持つモデルで言うと、あなたは計算のためにmodel.swiftを使用している場合は、一時値に

var model = Model() 

let model.temp = inputTextField.text 
0

にアクセスすることができます。モデルにテストフィールド値を渡すことができるオブジェクトを作成した後、Viewコントローラにモデルクラスのオブジェクトを作成します。

var modelObject: model? = model(); 
modelObject.temprature = txtTemprature.text; 
関連する問題