在 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;
在 viewDidUnload 中ImageViewController
,我将每个视图和对象设置为nil
;
所以我猜,iPad3 不会释放曾经添加到其中的视图控制器,而 iPad2 会释放以前的视图控制器并只保留当前的视图控制器。
这真的是一样的还是有任何其他解决方法...
有人可以帮我解决这个问题吗..我已经在这个问题上花了一个多星期了..任何建议都会更有帮助..