gpt4 book ai didi

ios - 如何将值从 ViewController 传递到 UITableView 自定义单元格类

转载 作者:行者123 更新时间:2023-12-01 19:44:24 24 4
gpt4 key购买 nike

我有一个 VC 名称 RestaurantViewController 它有 itemName ItemPrice 的自定义单元格,并且有三个按钮 + , - 现在当用户通过加/减设置选择数量然后点击添加按钮整个数据时,添加他们的操作在 customCellClass应该转到 CartVC 但在用户选择主菜单上的购物车图标之前不要推送。
RestaurantVC 看起来像这样 enter image description here

目前我正在使用 blockClosure 来传递数据

 //assign item name to cell
let selectedDictName = restMenu[indexPath.row] as! NSDictionary
print("the selected dict ", selectedDictName)
cell.itemNameLabel.text = selectedDictName.value(forKey: "ItemName") as! String

// assign item price to cell
let selectedDictPrice = restMenu[indexPath.row] as! NSDictionary
cell.itemPriceLabel.text = "Price: \(selectedDictPrice.value(forKey: "ItemPrice") as! String)"

// pass ItemName and ItemPrice by blockClosure
if blockClosure != nil{
blockClosure(selectedDictName.value(forKey: "ItemName") as! String, selectedDictPrice.value(forKey: "ItemPrice") as! String )
}

但这会在加载单元格之前传递与所选餐厅对应的所有值

我如何传递数据,然后进一步附加项目数量?这对我最后一个学期的项目很有帮助

最佳答案

遵循以下代码:- 使用协议(protocol)委托(delegate)

//1
//Create protocol

protocol TableViewCellDelegate {
func addTapped(cell: TableViewCell)
}

//2
//Create instance
class TableViewCell: UITableViewCell {

var delegate: TableViewCellDelegate?

….

@IBAction func addAction(_ sender: Any) {
delegate?.addTapped(cell: self)
}
}


//3

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

// create a new cell if needed or reuse an old one
let cell: TableViewCell = tableView.dequeueReusableCell(withIdentifier: “cell”, for: indexPath) as! TableViewCell
cell.delegate = self
}

//4
extension ViewController: TableViewCellDelegate {
func addTapped(cell: TableViewCell) {

}
}

关于ios - 如何将值从 ViewController 传递到 UITableView 自定义单元格类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com