UIPageViewController с изображениями в iPad3 кэширует все контроллеры представления в памяти
В ARC я настроил UIPageviewController
как MyPageViewController
, Я добавляю MyPageViewController
как childViewController для RootViewcontroller
, Тип перехода установлен как Curl.
ImageViewControllers
добавляются как viewControllers MyPageViewController, как это:
ImageViewController *startingViewController1 = [self.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];
ImageViewController *startingViewController2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];
NSArray *viewControllers = @[startingViewController1, startingViewController2];
[self.myPageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
self.myPageViewController.delegate = self;
self.myPageViewController.dataSource = self.pageModelController;
[self addChildViewController: self.myPageViewController];
[self.view addSubview: self.myPageViewController.view];
[self.myPageViewController didMoveToParentViewController:self];
каждый ImageViewController
имеет 4 различных UIImageViews на нем. Поскольку эти изображения могут быть HD-изображениями, чтобы избежать кеширования, я устанавливаю изображение с помощью:
[UIImage imageWithContentsOfFile:]
Но каждый раз, когда я переворачиваю страницу в pageViewController, я вижу увеличение объема памяти на 15 МБ, и оно не уменьшается, если я не открою весь этот RootViewController.
Но это происходит только в iPad3, тогда как в iPad2 память не увеличивается. На обоих установлена iOS 7.1.
В MyPageViewController одновременно добавляются только 2 viewController (ImageViewController), используя:
- (UIViewController *)pageViewController:(PMPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController;
- (UIViewController *)pageViewController:(PMPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController;
В viewDidUnload of ImageViewController
Я устанавливаю каждый вид и объекты nil
;
Поэтому я предполагаю, что iPad3 не выпускает контроллеры представления, которые когда-то были добавлены к нему, в то время как iPad2 выпускает предыдущие контроллеры представления и сохраняет только текущие.
Это действительно то же самое или есть какие-то другие обходные пути для этого...
Может ли кто-нибудь помочь мне в этом, пожалуйста.. Я трачу больше недели на эту проблему сейчас.. Любые предложения будут более полезными..
1 ответ
Извините, ребята, это была моя ошибка снова. За основным изображением мы устанавливаем еще одно фоторамку. Это изображение просмотра получает прямые данные UIImage. Я должен был сослаться на изображение Path вместо этого.
Я не заметил этого раньше. Когда я изменил его на UIImage imageWithContentsOfFile:, это сработало...