Снимите флажок TableView всех выборов TableView в Swift4 - PullRequest
0 голосов
/ 03 июня 2018

Я искал и не видел решения для:

  • У меня есть tableView, который позволяет множественные выборы
  • Я хочу иметь кнопку, чтобы разрешить эти выборы для всехбыть очищенным в то же время, в Swift.Кнопка будет на другом ViewController (UIViewController), чем TableView.Можно ли использовать протокол и делегат или требуется синглтон?Я хочу, чтобы он обновлялся при нажатии кнопки.

Несколько лет назад я увидел ответ от Деяна Скледара: Галочка UITableViewCell будет включаться и выключаться при нажатии ифункция под названием resetChecks() кажется тем, что я искал, но у меня возникают проблемы с тем, что я написал для Swift.Когда я запускаю его, он фактически не входит в метод, а затем, когда метод вызывается, он вылетает с «неожиданным поиском nil».Пожалуйста, кто-нибудь может дать совет?Благодарю.Вот что я написал:

func removeChecks() {
    for i in 0...grainTableView.numberOfSections - 1 {
        for j in 0...grainTableView.numberOfRows(inSection: i) - 1 {
            if let cell = tableView(grainTableView, cellForRowAt: [i,j]) as? UITableViewCell {
                cell.accessoryType == .none 
            }
        }
    }
}

1 Ответ

0 голосов
/ 03 июня 2018

Отправка объекта из preVC при представлении текущего VC

class currentVC:UIViewController {

    var delegate:PreVC?

 func removeChecks() {

   if let grainTableView = delegate?.tableView {
      for i in 0...grainTableView.numberOfSections - 1 {
          for j in 0...grainTableView.numberOfRows(inSection: i) - 1 {
              if let cell = tableView(grainTableView, cellForRowAt: [i,j]) as? UITableViewCell {
                cell.accessoryType == .none 
             }
          }
      }
   }
}

//

func removeChecks() {

   if let grainTableView = delegate?.tableView {

      delegate?.shouldClear = true

      grainTableView.reloadData()

   }

}
...