Как отключить выделение выделенной ячейки таблицы после возврата из Detail View (Назад Segue)

У меня проблема с моей ячейкой просмотра таблицы. Я не могу отключить выделение ячейки ячейки после возвращения из подробного представления в основное представление таблицы с помощью segue со встроенным контроллером навигации. Ячейка таблицы по-прежнему выбрана. Я не хочу, чтобы выбор ячейки таблицы был отключен, когда я нажимаю один из них, чтобы показать детали. Я только хочу отключить их после возвращения из подробного представления.

Ответ 1

Я получил его сейчас. Я так решил. Это простая теория.

Мы просто отменим выбор, когда мы выберем строку

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
}

Ответ 2

Вы также можете отключить выделение выделения ячеек:

import Foundation

class CustomTableViewCell: UITableViewCell
{
  required init(coder aDecoder: NSCoder)
  {
    fatalError("init(coder:) has not been implemented")
  }

  override init(style: UITableViewCellStyle, reuseIdentifier: String?)
  {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    self.selectionStyle = UITableViewCellSelectionStyle.None
  } 
}

Ответ 3

Решение для Swift3:

Это позволит выбрать, и это исправление для быстрого 3.

cell.selectionStyle = UITableViewCellSelectionStyle.none

Ответ 4

self.selectionStyle = UITableViewCellSelectionStyle.None

Достаточно переопределить func awakeFromNib() тоже:)

У меня возникла фатальная ошибка при принятии вышеуказанного кода.

Ответ 5

Как мне это нравится, если у вас есть один выделенный параметр, вы должны использовать метод viewDidAppear. Таким образом, пользователь может увидеть анимацию выбора, когда он вернется в таблицуView.

override func viewDidAppear(_ animated: Bool) {
    if let selectedRow = tableView.indexPathForSelectedRow {
        tableView.deselectRow(at: selectedRow, animated: true)
    }
}

Ответ 6

Swift 3

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
}