You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 15, 2020. It is now read-only.
Hey! :)
It would be nice to have some default mechanism for propagating actions from cell to view controller. One approach that I use is this. Maybe it could be a start point
protocol MyCellDelegate: class {
fun didTapButton(inside cell: UITableViewCell)
}
final class MyClass: UITableViewCell {
weak var delegate: MyCellDelegate?
// This way I need first pass this delegate into adapter initialiser
func configure(with model: MyCellModel, delegate: MyCellDelegate) {
self.delegate = delegate
}
@IBAction func didTapButton(_ sender: Any) {
guard let model = model else { return }
delegate?.didTapButton(inside: self)
}
}
final class MyViewController: UIViewController, MyCellDelegate {
func didTapButton(inside cell: UITableViewCell) {
guard
let indexPath = tableView.indexPath(for: cell),
let model = director.section(at: indexPath.section)?.models[indexPath.item]
else { return }
// do some action with model
}
}