данные действия передачи. Ошибка заключается в том, что я не могу получить доступ к переменной во втором TableView.
Ошибка: невозможно присвоить значение типа «Fav?» для типа «[Fav]» и член экземпляра «getFav» нельзя использовать для типа «FavouriteTableV C»; Вы хотели вместо этого использовать значение этого типа?
Struct Data
struct Fav {
var image: UIImage?
var name: String
var price: String
static let favName = ["Faaaak", "Dunc"]
static func getFav() -> [Fav] {
var favourites = [Fav]()
for fav in favName {
favourites.append(Fav(image: nil, name: fav, price: "29.000"))
}
return favourites
}
}
первая TableCell
class DivanCell: UITableViewCell {
var fav: Fav?
@IBOutlet weak var divanNameLabel: UILabel!
@IBOutlet weak var divanPhoto: UIImageView!
@IBOutlet weak var priceLabel: UILabel!
@IBOutlet weak var sizeDivan: UILabel!
@IBOutlet weak var favButton: UIButton!
@IBAction func favTapped(_ sender: Any) {
favButton.setImage(UIImage(systemName: "heart.fill"), for: UIControl.State.normal)
favTapped(favNext: FavouriteTableVC())
}
func favTapped(favNext: FavouriteTableVC) {
fav = Fav(image: divanPhoto.image, name: divanNameLabel.text!, price: priceLabel.text!)
FavouriteTableVC.getFav = fav // Error: Cannot assign value of type 'Fav?' to type '[Fav]' and Instance member 'getFav' cannot be used on type 'FavouriteTableVC'; did you mean to use a value of this type instead?
}
}
вторая TableViewV C
class FavouriteTableVC: UITableViewController {
var getFav = Fav.getFav()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBOutlet weak var favName: UILabel!
@IBOutlet weak var favPrice: UILabel!
@IBOutlet weak var favImage: UIImageView!
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return getFav.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "favouriteCell", for: indexPath) as! FavouriteTableViewCell
let favs = getFav[indexPath.row]
cell.name.text = favs.name
cell.price.text = favs.price
cell.favImage.image = favs.image
tableView.reloadData()
return cell
}
override func viewWillAppear(_ animated: Bool) {
tableView.reloadData()
}
// FavouriteTableViewCell
class FavouriteTableViewCell: UITableViewCell {
@IBOutlet weak var name: UILabel!
@IBOutlet weak var price: UILabel!
@IBOutlet weak var favImage: UIImageView!
}