Я пытаюсь выполнить segue
другому UIViewController
.
Я хочу передать данные этому новому контроллеру. Тем не менее, похоже, что UILabels
нового UIViewController
еще не инициализированы, поэтому я ошибаюсь, утверждая, что я развертываю необязательное значение nil.
Чего мне не хватает?
Вот мой код:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
{
let cell = collectionView.cellForItem(at: indexPath)
collectionView.deselectItem(at: indexPath, animated: true)
performSegue(withIdentifier: "addProductSegue", sender: cell)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if let nextViewController = segue.destination as? AddProductsViewController
{
let productCell = sender as! ProductCell
nextViewController.productName!.text = productCell.product!.Name
nextViewController.priceForKg!.text = "\(productCell.product?.priceForKg ?? 0.0)"
nextViewController.productImage!.image = productCell.productImageView.image
}
}
И новый UIViewController
:
import UIKit
class AddProductsViewController: UIViewController
{
@IBOutlet weak var productName: UILabel!
@IBOutlet weak var priceForKg: UILabel!
@IBOutlet weak var productImage: UIImageView!
override func viewDidLoad()
{
super.viewDidLoad()
}
@IBAction func addProduct(_ sender: UIButton)
{
self.navigationController?.popViewController(animated: true)
}
}