在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,只保留了当前的视图控制器。
这是真的相同还是有其他解决办法......
有人可以帮我解决这个问题吗...我现在已经在这个问题上花了一个多星期了..任何一种建议都会更有帮助..
答案 0 :(得分:1)
对不起伙计们,那是我的错误。我们在主图像后面设置了另一个PhotoFrame图像。该imageview获取直接的UIImage数据。我应该改为引用图像路径。
我之前没有注意到。当我把它改成 UIImage imageWithContentsOfFile:时,它就像一个魅力......