Я пытаюсь удалить все ранее выделенные ViewControllers в UIPageViewController, чтобы уменьшить использование памяти. У меня более 100 страниц в UIPageViewController, поэтому он занимает слишком много памяти и выглядит так: UIPageViewController не отменяет выделенные ViewControllersКак удалить previousViewControllers в UIPageViewController
ответ
вы можете использовать метод pageViewController
- (void)setViewControllers:(NSArray *)viewControllers
direction:(UIPageViewControllerNavigationDirection)direction
animated:(BOOL)animated
completion:(void (^)(BOOL finished))completion
установить новый массив viewControllers вы хотите, чтобы отображаться, предыдущие контроллеры будут освобождены.
так что я должен установитьViewControllers только на текущий видимый ViewController или что-нибудь, можете ли вы немного объяснить, какова ваша идея? –
Да, вы можете это сделать, но вы должны посмотреть на 'UIPageViewControllerDataSource', чтобы избежать контроля над viewControllers в памяти, они будут корректно обрабатываться UIPageViewController. – bsarr007
Я просто сделал это, но не больше страниц, если я прокручу вправо или влево, у него нет новых страниц, что вы подразумеваете под этим я должен смотреть на источник данных, что именно я должен там делать? –
У вас не должно быть 100 контроллеров в памяти. 'UIPageViewController' работает аналогично' UITableView' или 'UICollectionView', у него есть источник данных, который предоставляет контроллеры, поэтому он не должен хранить в памяти все контроллеры, – danypata
Я знаю, что tableView деактивирует ячейки, но здесь, в pageViewController, создается экземпляр View Controller и никогда не выпускайте их до тех пор, пока pageViewcontroller не получит предупреждение о памяти или что-то, что у моего приложения есть изображение на каждой странице, чтобы каждое изображение было выделено, но не было выпущено, ответ здесь говорит много [вопрос] (http://stackoverflow.com/questions/10576671/uipageviewcontroller-crashes-when-flipped-too-fast-in-low-memory) –