protocol MealCellDelegate: AnyObject {
func didSelect(cell: MealCell)
}
class MealCell: UITableViewCell {
var delegate: MealCellDelegate?
@IBOutlet weak var checkBtn : UIButton!
}
我有一個用于選擇功能的 UITableViewCell
我有一個如下所示的 UIViewController。
class MealSearchViewController: UIViewController {
@IBOutlet weak var tableview : UITableView!
tableview.delegate = self
}
extension MealSearchViewController: MealCellDelegate {
func didSelect(cell: MealCell) {
if let indexPath = tableview.indexPath(for: cell) {
let selectedItem = meals[indexPath.row]
selectedMeals.append(selectedItem)
}
}
}
但是此代碼不起作用。當我單擊一個檢查按鈕(它的狀態被選中)時,我想附加到一個空陣列,當我取消選擇該按鈕時我從陣列中洗掉。請幫幫我
uj5u.com熱心網友回復:
單元格代碼:
protocol MealCellDelegate: AnyObject {
func didSelect(cell: MealCell)
}
class MealCell: UITableViewCell {
var delegate: MealCellDelegate?
@IBOutlet weak var checkBtn: UIButton!
@IBAction func buttonClicked() {
delegate?.didSelect(cell: self)
}
}
UIViewController 代碼:
class MealSearchViewController: UIViewController {
@IBOutlet weak var tableView : UITableView!
override func viewDidLoad() {
tableView.dataSource = self
}
}
extension MealSearchViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell = *create meal cell*
cell.delegate = self
return cell
}
}
extension MealSearchViewController: MealCellDelegate {
func didSelect(cell: MealCell) {
*it calls after you press button in cell*
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422256.html
標籤:
