Пытаюсь сделать задание по добавлению рейтинга с помощью кордаты. Вроде бы все получилось сделать, вот только рейтинг постоянно сбрасывается, даже если не перезапустить приложение, а простой перейти с одно ресторана на второй. Помогите пожалуйста если кто то разберется
Курс 2 Урок 43 Проблема с сохранением рейтинга
haymob
#3
В RestaurantDetailViewController во viewDidLoad выставите картинку у кнопки:
if let rating = restaurant?.ratingSmile {
rateButtom.setImage(UIImage(named: rating), for: .normal)
}
Передайте Restaurant в RateViewController:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "mapSegue" {
let dvc = segue.destination as! MapViewController
dvc.restaurant = self.restaurant
} else if let raetVC = segue.destination as? RateViewController {
raetVC.restaurant = restaurant
}
}
В RateViewController в зависимости от нажатой кнопки присвойте значение ratingSmile:
@IBAction func rateRestaurant(sender: UIButton) {
let context = (UIApplication.shared.delegate as! AppDelegate).coreDataStack.persistentContainer.viewContext
switch sender.tag {
case 0: restaurant?.ratingSmile = "bad"
case 1: restaurant?.ratingSmile = "good"
case 2: restaurant?.ratingSmile = "brilliant"
default: break
}
try? context.save()
performSegue(withIdentifier: "unwindSegueToDVC", sender: sender)
}
В RestaurantDetailViewController в методе unwindSegue обновите картинку у кнопки:
@IBAction func unwindSegue(segue: UIStoryboardSegue) {
guard let rating = restaurant?.ratingSmile else { return }
rateButtom.setImage(UIImage(named: rating), for: .normal)
}
mrlakec
#4
Спасибо большое! это нормально что после просмотра 43 уроков, я не смог это сам сделать? или надо где нибудь знания еще приобрести?))