I am building a simple app that talks to a web service.
I have used the delegates method to communicate data (from my model to view controller).
But I am not sure how to read the data from view controller (text_field.text) in my model. I need to do that so that I can pass the right parameter to my webservice
my view controller is:
import UIKit
class ViewController: UIViewController,HomeModelDelegate {
    var homeModel = HomeModel()
    @IBOutlet weak var loginid: UITextField!
    @IBOutlet weak var pwd: UITextField!
    @IBAction func submit(_ sender: UIButton) {
        homeModel.chkpwd()
        //Here viewcontroller is assigning itself to the homemodel's delegate property
        homeModel.delegate = self            
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        loginid.layer.cornerRadius=10
        pwd.layer.cornerRadius = 10
    }
    func itemsDownloaded(locations: [Location]) {
        loginid.text = locations[0].pwd
    }
}
My model code is:
import UIKit
protocol HomeModelDelegate{
    func itemsDownloaded(locations:[Location])
}
class HomeModel: NSObject
{
    var delegate:HomeModelDelegate?
    func chkpwd()
    {
        //Hit the webservice url
        let x = ViewController()
        let z = x.loginid
        let serviceUrl = "http://www.xyz.in/webservice.php?loginid=(loginid.text)"
        //download the json data
        let url = URL(string: serviceUrl)
        if let url = url {
            let session = URLSession(configuration: .default)
            let task = session.dataTask(with: url, completionHandler:
            { (data, response, error) in
                if error == nil {
                //succeeded
                self.parseJson(data!)
                }
                else {
                //failed
                }
            })
        task.resume()
        }
    }
    func parseJson(_ data:Data){
        var locArray = [Location]()
        do{
        let jsonArray = try JSONSerialization.jsonObject(with: data, options: []) as! [Any]
            for jsonResult in jsonArray{
                let jsonDict = jsonResult as! [String:String]
                let loc = Location(pwd: jsonDict["loginid"]!, loginid: jsonDict["pwd"]!)
                locArray.append(loc)
                //pass the location back to the delegate
                delegate?.itemsDownloaded(locations: locArray)
            }
        }
        catch{
        print("An error occured")
        }
    }
}
 
     
    