带有iPad3中图像的UIPageViewController将所有viewcontrollers缓存到内存中

时间:2014-06-03 10:09:17

标签: ios objective-c memory-management uipageviewcontroller ipad-3

在ARC中,我将UIPageviewController定制为MyPageViewController。 我将MyPageViewController作为childViewController添加到RootViewcontroller。 “过渡类型”设置为“卷曲”。

ImageViewControllers被添加为MyPageViewController的viewControllers,如下所示:

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。由于这些图像可以是高清图像,为了避免缓存,我使用以下方式设置图像:

[UIImage imageWithContentsOfFile:]

但是每次我在pageViewController中翻页时,我都可以看到内存增加了15 MB并且它没有下降,除非我弹回整个RootViewController。

但这只发生在iPad3中,而iPad2中的内存并没有增加。两者都安装了iOS 7.1。

到MyPageViewController,一次只添加2个viewControllers( ImageViewController ),

- (UIViewController *)pageViewController:(PMPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController;
- (UIViewController *)pageViewController:(PMPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController;

ImageViewController的viewDidUnload中,我正在设置每个视图&对象nil;

所以我想,iPad3并没有发布曾经添加过它的视图控制器,而iPad2只发布了以前的viewControllers,只保留了当前的视图控制器。

这是真的相同还是有其他解决办法......

有人可以帮我解决这个问题吗...我现在已经在这个问题上花了一个多星期了..任何一种建议都会更有帮助..

1 个答案:

答案 0 :(得分:1)

对不起伙计们,那是我的错误。我们在主图像后面设置了另一个PhotoFrame图像。该imageview获取直接的UIImage数据。我应该改为引用图像路径。

我之前没有注意到。当我把它改成 UIImage imageWithContentsOfFile:时,它就像一个魅力......