首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滑动菜单:如何处理实际更改的视图控制器

滑动菜单:如何处理实际更改的视图控制器
EN

Stack Overflow用户
提问于 2013-01-08 22:22:14
回答 3查看 990关注 0票数 1

如今,似乎有50%的iPhone应用都在使用类似Facebook的滑动菜单。我还使用ViewDeck库(https://github.com/Inferis/ViewDeck)通过这个UI创建了一些应用程序。左视图是一个UITableView,点击一个项目会改变中心视图。

不过,我一直在为良好的“菜单管理”而苦苦挣扎。您是否创建了包含所有视图控制器的NSArray?一次延迟加载一个是不是更好?你是如何处理内存的?不确定最好的方法是什么,同时保持尽可能低的内存使用量。

当我看着这些滑动菜单库时,从来没有一个完整的示例应用程序具有工作菜单和多个控制器。就像我说的,我已经用ViewDeck创建了几个应用程序,但是视图控制器的实际更改总是让人感觉笨拙,而且根本不是最优的(包含所有实例化的视图控制器的数组)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-08 22:26:15

我将数组用于视图控制器,而不是视图。当用户选择指向视图控制器的单元格时,视图被加载。所以它是惰性加载。如果你认为你需要注意内存,那么在内存警告时,你可以释放你现在不需要的视图控制器。

当然,这取决于你在控制器中有什么,但通常(标准UI)你不需要释放它们。我从来没有需要过。

票数 3
EN

Stack Overflow用户

发布于 2013-01-08 22:54:28

首先,请注意,我从未使用过Facebook应用程序或ViewDeck,根据演示视频,这个库是用来做什么的很清楚。

我可以建议你寻找不同的模式,例如,有一本书叫Pro Objective-C Design Patterns for iOS,它描述了一个非常简单的中介模式,基本上就是控制器的控制器。

内存管理完全依赖于任务,我看不出有任何理由一次初始化所有的视图控制器,因为它们的视图可能会在不显示的时候加载。此外,视图并不总是控制器中最耗费资源的部分。这样的方法需要非常严格和仔细的控制器开发,你还必须使它们可重用,这并不容易。

相反,我会尽量使它尽可能灵活和简单:一个使用的视图控制器数组,下一个是按需加载和添加的。它应该与UINavigationController控制器堆栈非常相似。UINavigationController本身就是一个很好的研究样本,你不会有源代码,但你会有所有的头文件,内部逻辑也不是很难。

票数 1
EN

Stack Overflow用户

发布于 2013-06-07 03:24:27

我所做的是创建了一个容器视图控制器,在视图底部有侧栏菜单,这意味着它是不可见的。最重要的是,我有一个contentView (它只是一个UIView),我有一个UINavigationController,它管理UIViewControllers,并将导航栏设置为隐藏。然后,我将对这个UINavigationController的引用传递给侧栏菜单,它只是一个带有UITableView的UIView的子类,UIViewControllers就是在这里加载的。当用户选择一行时,I分配/初始化视图控制器。因此,当新的UIViewController被推送到堆栈上时,它会被推送到内容视图中的UINavigationController上。

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

https://stackoverflow.com/questions/14216994

复制
相关文章

相似问题

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