在内存中一次加载一个视图控制器
Posted
技术标签:
【中文标题】在内存中一次加载一个视图控制器【英文标题】:Load One viewController at a time in memory 【发布时间】:2016-11-21 06:38:31 【问题描述】:我在我的应用程序中使用了一个与 UIPageController 相关的第三方。我在我的应用程序中显示类别,并且我使用相同的类来显示数据。例如,如果我显示 5 个类别,则该 viewController 的 5 个对象被创建,5 个对象在内存中。
有没有办法在内存中一次只加载一个viewController?
【问题讨论】:
考虑使用 UICollectionView 作为 UIPageViewController 的替代品,UIPageViewController 会加载一个很重的 ViewController,而且大多数时候不需要通过加载 Cell,您无论如何都会获得默认优化的好处,而且它也很轻:) 并且在任何时间点都只会加载一个单元格,并在每次滑动时重新使用 :) 【参考方案1】:我可以理解您希望通过实现此目的来减少内存使用量。
UIPageController
在初始化时加载所有页面(控制器)。如果你想这样做,你有两个选择。
UIPageController
使用iCarousel控制。
iCarousel
将允许您在运行时创建页面,因此您可以一次加载一个viewController
。只需很少的自定义,您就可以实现所需的输出,但绝对不需要页面控制点。
【讨论】:
以上是关于在内存中一次加载一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 TabBar 按钮在我第一次加载视图控制器时被禁用?