我无法快速推送新的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)
}
}
任何提示或想法将不胜感激:))
在tableView(_,didSelectRowAt:)
中,尝试删除第3行中的?
。也就是说,将vc.item? = (...)
替换为vc.item = (...)