Мне нужно, чтобы tableView выполнял reloadData () после того, как строка была добавлена через textView. Все мои tableViews используют повторно используемый код, который отлично работает. Ниже мой многоразовый TableViewCode.
class ReusableSubtitleTable: NSObject, UITableViewDataSource, UITableViewDelegate{
let cell = "cell"
var dataArray = [String]()
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) {
print("DataArray count from table view = \(dataArray.count)")
return dataArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let selfSizingCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SelfSizingCell
let num = indexPath.row
selfSizingCell.titleText.text = (stepText[num])
selfSizingCell.subtitleText.text = dataArray[num]
return selfSizingCell
}
}
В приведенной ниже функции используется многоразовый код для отображения таблицы, которая отлично работает.
class DetailViewController: UIViewController {
let step = 13
var tableView: UITableView!
let dataSource = ReusableSubtitleTable()
var selectedEntry: JournalEntry!
var dataModel = [String]()
var didSave = false
var coreDataManager = CoreDataManager()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = dataSource
tableView.dataSource = dataSource
dataSource.dataArray = dataModel
@IBAction func unwindToDetail( _ sender: UIStoryboardSegue) {
dataModel[10] = step11
didSave = coreDataManager.updateEntry(step11: step11, selectedEntry: selectedEntry)
}
}
Проблема возникает, когда пользователь хочет добавить к последний ряд. Пользователь нажимает кнопку и переходит к следующему контроллеру, который является TextView. Когда пользователь заканчивает ввод, он нажимает кнопку «Сохранить», которая возвращается в DetailViewController через раскрутку. SelectedEntry сохраняется, а dataModel обновляется. Теперь необходимо перезагрузить представление таблицы, чтобы отобразить этот добавленный текст.
Я пробовал добавить tableView.ReloadData () после didSave. Я попробовал Dispatch и попытался сохранить данные перед возвратом из textView через размотку, но это тоже не работает.
Я попытался добавить приведенную ниже функцию в ReusableTableView и вызвал ее после обновления coredata - там ошибок нет, но таблица не перезагружается.
func doReload(){
tableView.reloadData()
}
Я проверил, что данные сохранены, и они отображаются, если я возвращаюсь к контроллеру сводки, а затем go пересылаю DetailViewController.
Любая помощь приветствуется.