У меня есть ячейка в tableView, с кнопкой, к которой я хочу добавить действие.
Эта кнопка будет адресом электронной почты.Когда кнопка нажата, я хочу вызвать делегата, у которого другой ViewController откроет письмо.Однако мне нужно иметь возможность передать электронное письмо в качестве параметра, и Swift, похоже, не позволяет мне это сделать.
Соответствующий код приведен ниже:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let row = self.sections[indexPath.section].rows[indexPath.row]
switch row {
case .Email:
cell.infoLabel.setTitle(cellInfo.email, for: .normal)
cell.infoLabel.addTarget(self, action: #selector(emailPressed(recipient: cellInfo.email!)), for: .touchUpInside)
cell.imageType.image = UIImage(named: "Email")
}
}
@objc func emailPressed(recipient: String){
self.delegate?.dataController(self, recipientEmail: recipient)
}
protocol DataControllerDelegate: class {
funcdataController(_ DataController: DataController, recipientEmail: String)
}
Яошибка: «Аргумент« #selector »не относится к методу, свойству или инициализатору« @objc »
Есть ли способ передать электронное письмо в функцию @objc, чтобы онможно подать в делегат функции?