перезагрузите UITableView в UINib, который находится в UITableView - PullRequest
0 голосов
/ 24 мая 2018

Название звучит немного более убедительно.

У меня есть UITableView, где я создаю экземпляр UINib, который содержит UITableView.Этот TableView позволяет называть его «DetailTableView», отображает некоторую информацию, которую можно добавить в другой ViewController - пока что это хорошо.

Чего я хочу добиться, так это того, что этот «DetailTableView» автоматически обновляется после добавления новой записи.

Запись сохраняется в локальной базе данных Realm и уже правильно отображается, но «DetailTableView» обновляется только после принудительного закрытия и повторного открытия приложения.

Я уже пытался перезагрузить UINib и запустить tableview.reloadData() с уведомлением, которое публикует в viewWillAppear(), но я не могу заставить эту вещь работать.Я также пытался выстрелить instatiate:WithOwner или awakeFromNib(), но это не сработало.

Я много искал в Интернете, а также здесь, но не могу найти ответ. Надеюсь, вы, ребята, сможете мне помочь.большое спасибо!

1 Ответ

0 голосов
/ 24 мая 2018

Вы должны использовать этот код

data = try? realm.objects(Model.self)

token = data?.observe { (changes: RealmCollectionChange) in

                switch changes {
                case .initial:
                    self.tableView.reloadData()
                    break
                case .update:
                    self.tableView.reloadData()
                    break
                case let .error(error):
                    fatalError("\(error)")
                    break
                }
            }
...