【问题标题】:Memory management with UIPageControl and child ViewControllers使用 UIPageControl 和子 ViewController 进行内存管理
【发布时间】:2013-04-02 08:34:48
【问题描述】:

在我的项目中,我将本教程用于addChildViewControllershttp://www.wannabegeek.com/?p=168 在本教程中,情节提要上只有 3 个视图控制器。在我的项目 (ARC) 中,我得到了更多的视图控制器,并且我还不止一次地添加了故事板上的一些视图控制器。例如:

  [self addChildViewController:firstViewController];
  [self addChildViewController:firstViewController];
  [self addChildViewController:firstViewController];
  [self addChildViewController:secondViewController];
  [self addChildViewController:secondViewController];
  [self addChildViewController:thirdViewController];

问题是这会占用大量内存,因为它们都已加载。我的问题是如何减少这种情况?

【问题讨论】:

  • 为什么要多次添加同一个视图控制器? AFAIK addChildViewController 只是在父视图控制器实例和子视图控制器实例之间创建关系,因此不需要多次调用它。例如,创建父子关系以向前旋转事件。所有视图控制器是否同时可见?

标签: ios objective-c memory-management


【解决方案1】:

看完教程,我有一个更好的建议给你:使用UIPageViewController。它完全满足您的需求,并且使用 dataSource 协议,因此您不必将所有视图控制器都保存在内存中。我很确定这就是你想要的。除非您有充分的理由,否则不要滚动您自己的页面视图控制器。

WWDC 2011 Session 102 将向您介绍UIPageViewController 和一般的容器视图控制器。

【讨论】:

  • 问题是我已经制作了我的应用程序,那么有没有一种简单的方法可以将它从我的应用程序更改为您给我的 UIPageViewController?这是否也基于教程中的情节提要视图控制器?它是否包括教程中的滚动/滑动?
  • 它适用于故事板,并且绝对支持滑动。我不知道您的应用程序的详细信息,但您绝对应该观看 WWDC 会话视频,我相信无论您使用 UIPageViewController 还是滚动自己的容器视图,它都会对您有所帮助。
  • 感谢您的帮助,我的应用程序实际上是这样的:它是某种故事,用户在其中滑动(像一本书),与一本书的区别在于有图像,标签在视图控制器以及需要填写内容的文本字段上。切换到 UIPageViewController 是否容易,因为我已经完成了教程中的所有操作...
猜你喜欢
  • 1970-01-01
  • 2012-02-04
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
相关资源
最近更新 更多