UIPageViewController с изображениями в iPad3 кэширует все контроллеры представления в памяти

StackOverflow https://stackoverflow.com//questions/24012444

Вопрос

В 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:, это сработало как заклинание...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top