首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持多个子视图控制器与父UIViewController相关联,即使它们的视图不可见也可以吗?

保持多个子视图控制器与父UIViewController相关联,即使它们的视图不可见也可以吗?
EN

Stack Overflow用户
提问于 2013-05-20 06:39:58
回答 1查看 1K关注 0票数 2

场景:我有一组对象。我希望在设备处于纵向模式时使用UITableView显示它们,当设备处于横向模式时使用UICollectionView显示它们。为此,我希望使用UIViewController作为容器,并为其提供两个子视图控制器( UICollectionViewController和UITableViewController各一个)。我预计方向会经常改变,导致父控制器在两个子控制器之间来回切换。

在iOS的视图控制器编程指南(2012-12-13)中,在第117页和第118页上,他们讨论了子级之间的转换,每当从视图层次结构中删除子级视图时,他们都会从父级中删除子级视图控制器。(具体参见清单14-3。)

这是出于内存或其他原因所必需的吗?或者,是否可以将两个子视图控制器都与父视图控制器相关联,并在视图之间来回切换?这两种技术都有性能优势吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 15:30:41

将两个视图控制器都作为子级是没有问题的,您只需要确保在它们之间共享适当的资源(即,没有两个要显示的对象副本),或者在显示和隐藏视图时释放它们。

在您的示例中,两个视图控制器显示相同的数据,因此我假设当您在这两个视图之间切换时,您将根据在另一个视图中发生的事情来更新滚动位置。如果是这种情况,那么将另一个视图控制器分配为子控制器并没有太多好处。它能保存的唯一一件事就是先前分配的单元格被缓存在视图中。因此,为了最有效地利用内存,您应该删除没有显示的视图控制器。这在运行时会花费更多一点,但应该不会引起注意。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16640229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档