У меня есть 2 табличных представления с настраиваемыми ячейками табличного представления, где выбор ячейки в первом табличном представлении переходит ко второму. Я пытаюсь добиться того, чтобы при выборе ячейки на втором экране добавлялась красная рамка, а если вы вернетесь к первому виду и вернетесь ко второму, у ячейки все еще будет граница.
Перед использованием пользовательских ячеек табличного представления я проверил на 2 контроллерах табличного представления, и код работал;однако это не относится к настраиваемым ячейкам табличного представления.
Вот код, который я использовал для контроллеров табличного представления (secondCategory - это класс, содержащий путь индекса выбранной ячейки):
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
cell?.selectionStyle = UITableViewCell.SelectionStyle.none
cell?.layer.borderWidth = 3.0
cell?.layer.borderColor = UIColor.red.cgColor
secondCategory.currentSelection = indexPath
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
if secondCategory.currentSelection != nil {
let cell = tableView.cellForRow(at: secondCategory.currentSelection!)
cell!.selectionStyle = UITableViewCell.SelectionStyle.none
cell!.layer.borderWidth = 3.0
cell!.layer.borderColor = UIColor.red.cgColor
}
}
Ниже приведен код для пользовательских ячеек табличного представления (в viewWillAppear я использую tableView (tableView: UITableView, cellForRowAt: IndexPath), потому что tableView.cellForRow (at: IndexPath) возвращает ноль):
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
cell?.selectionStyle = UITableViewCell.SelectionStyle.none
cell?.layer.borderWidth = 3.0
cell?.layer.borderColor = UIColor.red.cgColor
secondCategory.currentSelection = indexPath
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
if secondCategory.currentSelection != nil {
let currentCell = tableView(secondTable, cellForRowAt: secondCategory.currentSelection!)
currentCell.selectionStyle = UITableViewCell.SelectionStyle.none
currentCell.layer.borderWidth = 3.0
currentCell.layer.borderColor = UIColor.red.cgColor
}
}
Может кто-нибудь сказать мне, почему код для пользовательских ячеек табличного представления не работает?