How to pull data from remote server and show them on another viewcontroller ie. Profile View Controller
here's my code
let url = URL(string: stringURL)
guard let requestUrl = url else { fatalError() }
// Prepare URL Request Object
var request = URLRequest(url: requestUrl)
request.httpMethod = "POST"
// Set HTTP Request header
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("1088", forHTTPHeaderField: "Content-Length")
// HTTP Parameters which will be sent in HTTP Request body
let postString = "userID=\(useridTextField.text ?? "")&password=\(passwordTextField.text ?? "")"
// Set HTTP Request Body
request.httpBody = postString.data(using: String.Encoding.utf8)
// Perform HTTP Request
let session = URLSession.shared
let task = session.dataTask(with: request) { data, response, error in
guard let data = data else {
return
}
do {
var user = try JSONDecoder().decode(User.self, from: data)
user.idNumber = self.idNumber
user.firstName = self.firstName
user.middleName = self.middleName
user.lastName = self.lastName
user.emailAddress = self.emailAddress
user.mobileNumber = self.mobileNumber
user.landline = self.landline
return
} catch {
let str = String(decoding: data, as: UTF8.self)
print(str)
}
}
task.resume()
here's the code from Profile Viewcontroller
@IBOutlet weak var idNumberLabel: UILabel!
@IBOutlet weak var emailAddressLabel: UILabel!
@IBOutlet weak var mobileNumberLabel: UILabel!
var idNumber: String = ""
var firstName: String = ""
var lastName: String = ""
var emailAddress: String = ""
var mobileNumber: String = ""
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
nameTextLabel.text = firstName
here is the simulator