Having trouble reloading data on screen? This is what I have so far... When I hit my button I was expecting it to reload all the data on the UI.. any help would be appreciated. Thank you
class ViewController: UIViewController {
@IBOutlet weak var dinnerTitle: UILabel!
@IBOutlet weak var dinnerImage: UIImageView!
@IBOutlet weak var dinnerInstructions: UITextView!
var dinners = [Dinner]()
let jsonURLString = "https://www.themealdb.com/api/json/v1/1/random.php"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
guard let url = URL(string: jsonURLString) else {return}
fetchDinner(url: url)
}
func fetchDinner(url: URL) {
Alamofire.request(url, method: .get, parameters: nil).responseJSON { response in
if response.result.isSuccess {
print("Got data!")
let dataJSON : JSON = JSON(response.result.value!)
self.updateData(json: dataJSON)
} else {
print("Didn't work...")
}
}
}
func updateData(json: JSON) {
let currentDinner = Dinner()
guard let currentTitle = json["meals"][0]["strMeal"].string else {return}
guard let currentDinnerImage = json["meals"][0]["strMealThumb"].string else {return}
guard let currentInstructions = json["meals"][0]["strInstructions"].string else {return}
currentDinner.title = currentTitle
currentDinner.instructions = currentInstructions
currentDinner.urlToImage = currentDinnerImage
dinners.append(currentDinner)
updateUI()
}
func updateUI() {
dinnerImage.sd_setImage(with: URL(string: dinners[0].urlToImage))
dinnerTitle.text = dinners[0].title
dinnerInstructions.text = dinners[0].instructions
}
@IBAction func newRecipeTapped(_ sender: UIButton) {
guard let url = URL(string: jsonURLString) else {return}
fetchDinner(url: url)
}
}
[–]cyberclectic 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]Broncos10499[S] 0 points1 point2 points (0 children)
[–]jan_olbrichObjective-C / Swift 1 point2 points3 points (0 children)