Q:

How do I send data from the Model back to the Controller in swift?

I am currently writing a custom productivity app and I'm running into a roadblock.  I am using the MVC method of coding.  I have all of the time calculations done in the model class and the view updates on the controller class.  
However, I am having problems getting the data to send back from the model to the controller.  I can't use the return method because the model class function that loops the data is called by another method and not the controller class. 
Here is my ViewController class:
    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)

            }
        }
    }

}

Here is the model that handles all of the calculations:
    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))

        }
    }

I'm new so any help with an explanation explained as simply as possible would greatly be appreciated.  This will help me learn and grow. 

A:

Well, in the most basic sense, a model can communicate with controller using delegates, protocols, notification etc. 
For example
According to a source, link to which I will provide at the end of this post, three common patterns for model to send data to Controller are:

Delegation
Notification Center
Key value observing

Main source of information is this
But, to understand everything in depth, go through  link.
A cool and easy to understand example is that of IBAction Delegation related to UIButton. 

