У меня есть пользовательский UIView с 3 табличными представлениями, представления таблиц являются самостоятельными размерами в зависимости от содержимого, которое у них есть, и они показывают другой нить, когда они пусты, чем когда они имеют содержание. Все это встроено в представление прокрутки, и оно уже работает, мои свитки просмотра и таблицы отображаются соответствующим образом, и они автоматически настраиваются, размер прокрутки также настраивается без проблем.Делегат, используемый для управления кнопкой внутри ячейки, не работает
В двух табличных представлениях, когда элементы таблицы имеют элементы, есть некоторые кнопки в ячейке, которые я хочу получить вместе с индексом ячейки, нажатой внутри контроллера View, где я определил представление таблицы.
Вот в ПОС я показывающий tableViews каждый с одним пунктом, то Canastas Tableview имеет только кнопку удаления элемента и Productos Tableview имеет кнопку удаления элемента и степпер, чтобы увеличить или уменьшить количество.
Я нашел решение с участием делегатов в StackOverflow Get button click inside UI table view cell, которое я реализовал. Но по какой-то причине он не работает, а код в методе делегата не выполняется.
Вот мой код:
CanastasViewCell
import UIKit
protocol CanastasViewCellDelegate: class {
func closeButtonTapped(at index: IndexPath)
}
class CanastasViewCell: UITableViewCell {
@IBOutlet weak var imagenProducto: UIImageView!
@IBOutlet weak var nombreProducto: UILabel!
@IBOutlet weak var descProducto: UILabel!
@IBOutlet weak var precioProducto: UILabel!
@IBOutlet weak var closeButton: UIButton!
weak var delegate: CanastasViewCellDelegate?
var indexPath: IndexPath!
override func awakeFromNib() {
super.awakeFromNib()
}
@IBAction func eliminarProducto(_ sender: AnyObject) {
self.delegate?.closeButtonTapped(at: indexPath)
}
}
CarritoViewController
import UIKit
class CarritoViewController: UIViewController, UITableViewDelegate,
UITableViewDataSource, CanastasViewCellDelegate {
func closeButtonTapped(at index: IndexPath) {
print("Button tapped at index:\(index)")
}
У меня есть проблема с пониманием вашего кода, поскольку он не на английском языке. Что означает 'eliminarProducto'? – paper1111
eliminarProducto означает deleteProduct, и он должен удалить продукт из indexPath.row (я до сих пор не закодировал эту часть), поэтому прямо сейчас он должен просто распечатать Button, нажав на индекс: (indexPath.row), но он не распечатывается что-нибудь. –
Проверьте, правильно ли вы подключили кнопку к '@ IBAction' – paper1111