2016-05-27 1 views
0

私は現在、カスタム生産性アプリを書いていますし、私はバリケードに実行していますよ。私はMVCのコーディング方法を使用しています。私はすべての時間の計算をモデルクラスで行い、ビューの更新はコントローラクラスで行いました。モデルからのデータを迅速にコントローラに戻す方法を教えてください。

しかし、私はコントローラにモデルから戻って送信するデータを取得する問題を抱えています。データをループするモデルクラス関数がコントローラクラスではなく別のメソッドによって呼び出されるため、returnメソッドを使用することはできません。私は新たなんだので、説明を持つ任意のヘルプは、できるだけ簡単に説明し

import Foundation 

    class MyClass { 

     var timerCounter:NSTimeInterval! 


     func stringFromTimeInterval(interval: NSTimeInterval) -> String { 
      let interval = Int(interval) 
      let seconds = interval % 60 
      let minutes = (interval/60) % 60 
      let hours = (interval/3600) 
      return String(format: "%02d:%02d:%02d", hours, minutes, seconds) 
     } 

     func startTimer(hour: Int) { 
      timerCounter = NSTimeInterval(hour) 
      NSTimer.scheduledTimerWithTimeInterval(1, target: self, 
       selector: #selector(MyClass.onTimer(_:)), 
       userInfo: nil, repeats: true) 
     } 

     @objc func onTimer(timer:NSTimer!){ 
      //this is where I need to send the data from, back to the 
      //controller so that the controller can update the display. 
      timerCounter! -= 1 
     } 


     func timeCalculation(cartons: Int, people: Int) -> Int{ 
      let numberOfCartons = Double(cartons) 
      let numberOfPeople = Double(people) 
      let timeCalculations: Double = numberOfCartons/4.7/
       numberOfPeople 
      let timeSeconds = (timeCalculations * 60) * 60 
      return Int(round(timeSeconds)) 

     } 
    } 

:ここ

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var display: UILabel! 

    @IBOutlet weak var cartonInput: UITextField! 

    @IBOutlet weak var peopleInput: UITextField! 

    @IBAction func goButton(sender: UIButton) { 
     let calculator = MyClass() 
     if let people = Int(peopleInput.text!){ 
      if let carton = Int(cartonInput.text!){ 
       let placeholder = calculator.timeCalculation(carton, people: people) 
       calculator.startTimer(placeholder) 

      } 
     } 
    } 

} 

は、すべての計算を処理するデータモデルである:ここでは

は私のViewControllerクラスです非常に感謝します。これは私が学び成長するのに役立ちます。例えば

について

答えて

1

さて、最も基本的な意味において、モデルはデリゲートを使用してコントローラと通信することができ、プロトコル、通知等 私はこの記事の最後に提供したソース、リンクによります、コントローラにデータを送信するためのモデルのための3つの一般的なパターンは以下のとおりです。

  1. 委任
  2. 通知センター
  3. 情報の

主な情報源を観測

  • キー値がlink通過し、深さのすべてを理解するために、this

    ですが。

    クールで分かりやすい例は、IBAction代表団のUIButtonに関連していることです。

  • 関連する問題