У меня есть кнопка addSet в конце каждого раздела моего tableView, она используется как footerView и должна сообщать UITableViewController о том, когда она нажата и в каком разделе. Мой код для пользовательской ячейки табличного представления выглядит следующим образом:
import UIKit
class FooterTableViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
var footerDelegate:FooterTableViewCellDelegate?
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
@IBAction func addSetIsPressed(_ sender: AnyObject) {
print("Add Set is pressed")
footerDelegate?.didAddSetIsPressed(cell:self)
}
}
protocol FooterTableViewCellDelegate {
func didAddSetIsPressed(cell:FooterTableViewCell)
}
И в моем TableViewController я реализую его так:
func didAddSetIsPressed(cell: FooterTableViewCell) {
let indexPath = tableView.indexPath(for: cell)
print("Index path is \(indexPath)")
}
Я хочу получить indexPath (специально для этого раздела) когда пользователь нажимает на мою кнопку, он всегда возвращает ноль. Что я делаю неправильно?
Чтобы поместить вещи в контекст. Я использую эту ячейку в качестве footerView, поэтому ячейка реализована примерно так:
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableCell(withIdentifier: "footerCell") as! FooterTableViewCell
cell.footerDelegate = self
return cell
}
, поэтому она не реализована в cellForRow в indexPath, как обычно это будет
Заранее спасибо.