在Swift4

时间:2018-06-03 17:26:56

标签: ios swift uitableview accessorytype

我已经搜索过,并且没有看到解决方案:

  • 我有一个允许多项选择的tableView
  • 我希望有一个按钮,允许在Swift中同时清除所有这些选择。该按钮将位于与TableView不同的viewController(UIViewController)上。是否可以使用协议&代表,还是需要单身人士?我想让它在点击按钮时更新。

几年前我在Dejan Skledar看到了答案:UITableViewCell checkmark to be toggled on and off when tapped而且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 :(得分:0)

当您呈现currentVC时,从preVC发送对象

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()

   }

}