Как сохранить выделенные несколько строк UITableView после перезагрузки UITableView? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть UITableView.Я могу выбрать несколько ячеек, чтобы они были выделены.Но всякий раз, когда я перезагружаю приложение, выбранное и подсвеченное состояние исчезает.Я думаю, что мне нужно поместить несколько кодов в «viewDidAppear» и «didSelectRowAt».Но я понятия не имею о конкретных кодах.Что я должен вставить в этот синтаксис?

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        tableView.reloadData()
    }


    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


    }

}

1 Ответ

0 голосов
/ 23 октября 2018

Я рекомендую добавить в выбранное поле элемента dataSource и в методе cellForRowAtindexPath настроить его элементами dataSource.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cellClass = (self.cellClass(for: indexPath) ?? self.cellClasses.first) else { return UITableViewCell() }

        let cell = tableView.dequeueReusableCell(withIdentifier: cellClass.identifier, for: indexPath)

        if let configurable = cell as? ConfigurableComponent, let object = self.object(at: indexPath) {
            let item = self.dataSource[indexPath.row]

            configurable.selected =  item.selected
        }

        return cell
    }

Когда вызывается didSelectRowAt, просто возьмите элемент и измените выбранное поле, пример:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
      let item = self.dataSource[indexPath.row]
      item.selected = !item.selected
      tableView.reloadData()

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...