У меня есть пользовательский UITableViewCell с 2 ярлыками и кнопкой. Клетка имеет собственный класс:Извлечь информацию из Table Cell?
class personTableCell: UITableViewCell {
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var emailLabel: UILabel!
@IBAction func inviteButtonPressed(_ sender: Any) {
self.accessoryType = .checkmark
}
}
Внутри контроллера представления, который содержит вид таблицы, добавить ячейки в таблице в этом методе:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "person", for: indexPath) as? personTableCell
cell?.nameLabel.text = results[indexPath.row].name
cell?.emailLabel.text = results[indexPath.row].email
return cell!
}
Когда пользователь нажимает на кнопку внутри ячейка, которая вызывает @IBAction func inviteButtonPressed
, я хочу добавить текст ярлыков ячейки в массив, который инициализирован в том же контроллере представления, что и таблица.
Как я могу достичь такой вещи, если @IBAction func inviteButtonPressed
находится в отдельном файле в качестве контроллера представления таблицы?
Не относится: Слишком много вопросов и восклицательных знаков для птиц. Серьезно: никогда не получать информацию из ячейки представления таблицы (вид), получить ее из массива данных (модели) – vadian
@vadian уточнить, пожалуйста? – MarksCode
'dequeueReusableCell (withIdentifier: indexPath)' возвращает необязательную ячейку. Это довольно глупо, чтобы опционально сбрасывать его. Ячейка, очевидно, создана в Interface Builder, поэтому вы знаете, что она существует. – vadian