Объект не настроен правильно при передаче его между классами - PullRequest
0 голосов
/ 08 октября 2019

У меня возникают проблемы с быстрым нажатием нового ViewController.

class CartViewController: UITableViewController  {

    static var items:[Item] = []

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return CartViewController.items.count
    }

    //if cell is selected
    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let vc = storyboard?.instantiateViewController(withIdentifier: "PaymentController") as! PaymentController
        print(CartViewController.items[indexPath.row].title)
        vc.item? = CartViewController.items[indexPath.row]

        self.navigationController?.pushViewController(vc, animated: true)
    }

Функция печати там дает правильный результат, но при нажатии на новый vc ничего не появляется. отладчик показывает vc.item ноль.

Это то, что у меня есть в классе PaymentController

class PaymentController: UIViewController {

    @IBOutlet weak var myImage: UIImageView?
    @IBOutlet weak var myTitle: UILabel?
    @IBOutlet weak var myPrice: UILabel?

    var item:Item?

    override func viewDidLoad() {
        super.viewDidLoad()

        myImage?.image = UIImage(named: item!.image)
        myTitle?.text = item!.title
        myPrice?.text = String(item!.price)
    }
}

Будут оценены любые советы или идеи:))

1 Ответ

1 голос
/ 08 октября 2019

В tableView(_,didSelectRowAt:) попробуйте удалить ? в строке 3.
Т.е. заменить vc.item? = (...) на vc.item = (...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...