Когда вы вызываете tableView.reloadData (). Это не имеет никакого эффекта, если tableView скрыт (isHidden == true). Я считаю, что поведение также то же самое, когда tableView эффективно скрыт другим ViewController (так эффективно скрыт).
Решение. Рекомендуется перезагрузить tableView при повторном отображении представления. Несколько способов сделать это. один находится в viewDidAppear (зависит от того, как вы переходили между ViewControllers), или
вы можете сохранить ссылку на tableView, а после того, как вы отклоните второй ViewController (в который вы отправляли уведомление), вы предоставляете обратный вызов для перезагрузите tableView. Примерно так же, как фрагмент, при котором self является secondViewController , на который вы перешли. Откажитесь от этого представления
self.dismiss(animated: true, completion: {
self.tableView.reloadData()
}
, или вы все еще можете использовать свое уведомление и установить флаг, и когда viewDidAppear, вы затем перезагрузите Data () внутри viewDidAppear. Однако, чтобы это работало, вам нужно убедиться, что viewDidAppear всегда вызывается при повторном отображении представления (это будет зависеть от того, как вы переходили между представлениями). Просто переопределите этот метод и напечатайте для проверки.
Есть другие способы, но нижняя строка tableView.reloadData () будет игнорироваться, если она вызывается, когда tableView не виден на экране. Я предполагаю, что это оптимизация, сделанная Apple (не нужно перезагружать, если таблица не отображается) или, возможно, ошибка. Я думаю, они скажут, что это особенность 101