Вернуться к представлению таблицы со страницы сведений без перезагрузки таблицы - PullRequest
0 голосов
/ 21 января 2019

Следующая моя иерархия [Панель вкладок] -> [Контроллер навигации] -> [VC, содержащий представление таблицы] -> [Подробности VC]

В [VC, содержащем табличное представление] я извлекаю детали из API в viewWillAppear и перезагружаю таблицу. viewWillAppear также вызывается при нажатии кнопки «Назад» на Подробности VC. Как предотвратить перезагрузку таблицы в этом случае?

Мой вопрос похож на этот вопрос Вернуться к представлению таблицы со страницы сведений без перезагрузки, Swift , но мне нужно сохранить код перезагрузки таблицы в viewWillAppear, поскольку я сегментировал управление в этом VC и Мне нужно перезагрузить таблицу, когда сегменты переключаются.

1 Ответ

0 голосов
/ 21 января 2019

Вы можете поддерживать простой механизм флаговой базы для достижения этой цели.Объявите флаг в вашем ViewController следующим образом:

class YourViewController: UIViewController {

// MARK: Internal Variable
private var shouldReloadDataOnViewWillAppear: Bool = true


override viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    if shouldReloadDataOnViewWillAppear {
       // your code for reloading data
    }

    shouldReloadDataOnViewWillAppear = true
}

Теперь вы можете установить shouldReloadDataOnViewWillAppear на false внутри prepareForSegue или didSelectRowAtIndexPath, что будет ограничивать загрузку данных в следующий раз, когда ваш контроллер представления вновь появитсяв главном окне.

...