2015-01-30 4 views
0

Я пытаюсь удалить все ранее выделенные ViewControllers в UIPageViewController, чтобы уменьшить использование памяти. У меня более 100 страниц в UIPageViewController, поэтому он занимает слишком много памяти и выглядит так: UIPageViewController не отменяет выделенные ViewControllersКак удалить previousViewControllers в UIPageViewController

+1

У вас не должно быть 100 контроллеров в памяти. 'UIPageViewController' работает аналогично' UITableView' или 'UICollectionView', у него есть источник данных, который предоставляет контроллеры, поэтому он не должен хранить в памяти все контроллеры, – danypata

+0

Я знаю, что tableView деактивирует ячейки, но здесь, в pageViewController, создается экземпляр View Controller и никогда не выпускайте их до тех пор, пока pageViewcontroller не получит предупреждение о памяти или что-то, что у моего приложения есть изображение на каждой странице, чтобы каждое изображение было выделено, но не было выпущено, ответ здесь говорит много [вопрос] (http://stackoverflow.com/questions/10576671/uipageviewcontroller-crashes-when-flipped-too-fast-in-low-memory) –

ответ

0

вы можете использовать метод pageViewController

- (void)setViewControllers:(NSArray *)viewControllers 
      direction:(UIPageViewControllerNavigationDirection)direction 
       animated:(BOOL)animated 
      completion:(void (^)(BOOL finished))completion 

установить новый массив viewControllers вы хотите, чтобы отображаться, предыдущие контроллеры будут освобождены.

+0

так что я должен установитьViewControllers только на текущий видимый ViewController или что-нибудь, можете ли вы немного объяснить, какова ваша идея? –

+0

Да, вы можете это сделать, но вы должны посмотреть на 'UIPageViewControllerDataSource', чтобы избежать контроля над viewControllers в памяти, они будут корректно обрабатываться UIPageViewController. – bsarr007

+0

Я просто сделал это, но не больше страниц, если я прокручу вправо или влево, у него нет новых страниц, что вы подразумеваете под этим я должен смотреть на источник данных, что именно я должен там делать? –