UIPageViewController с изображениями в iPad3 кэширует все контроллеры представления в памяти
-
21-12-2019 - |
Вопрос
В 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;
В видуВыполнилВыгрузку ImageViewController
, я настраиваю все представления и объекты на nil
;
Итак, я предполагаю, что iPad3 не выпускает контроллеры представления, которые когда-то были добавлены к нему, тогда как iPad2 выпускает предыдущие контроллеры представления и сохраняет только текущие.
Это действительно то же самое или есть какие-то другие обходные пути?
Может кто-нибудь помочь мне в этом, пожалуйста..Я уже больше недели размышляю над этим вопросом..Любые предложения будут более полезны..
Решение
Извините, ребята, это снова была моя ошибка.За основным изображением мы устанавливаем еще одно изображение PhotoFrame.Это изображение получает прямые данные UIImage.Вместо этого мне следовало бы указать путь к изображению.
Я не заметил этого раньше.Когда я изменил его на UIImage imageWithContentsOfFile:, это сработало как заклинание...