Здравствуйте, у меня есть данные, которые я подгружаю с сервера порциями. Эти данные я отображаю в виде таблиц в UIPageViewController. Но есть проблема, при быстром перелистывании я могу обогнать подгрузку данных с сервера и UIPageViewController заблокируется при отсутствии данных для отображения, а функции перезагрузки или обновления данных, как в tableView у него вроде нет.
Я решал эту проблему следующими способами
- Если данные еще не успели загрузиться, то я отображал пустой контроллер с полосой загрузки данных и сохранял этот контроллер для последующего отображения. Как только данные пришли, я обновлял тот пустой контроллер, передав в него загруженные данные. Но проблема в том, что пользователь мог бы перелистнуть дальше, что привело бы к потери предыдущего контроллера и он бы вечно остался в состоянии загрузки. Можно конечно создать массив из контроллеров, данные для которых еще не пришли, а потом пробегаться по ним и обновлять, но я считаю, что это уже попахивает костылями.
- Самый банальный, но как по мне самый неправильный - это грузить заранее за 5 страниц новые данные, чтобы пользователь чисто физически не успел попасть в ситуацию, описанную в пункте 1.
- Я услышал, что можно использовать UICollectionView для таких целей, но тоже не уверен в правильности данного подхода и пока не думал как реализовать отображение таблицы в UICollectionViewCell
У кого был подобный опыт, подскажите, что вы использовали в такой ситуации?