为了在我的iOS应用中切换视图,我一直在使用模态视图控制器。它工作正常,但这是错误的编码实践吗?它对我的应用程序的内存使用有害吗?
在回复要求提供更多信息的评论时,我之间切换的观点是正常的信息观点。我使用三个视图浏览我的应用程序:
我在顶部有一个即兴导航栏,用于导航“返回”和“主页”执行主页。
总的来说,这是一个Web应用程序,其结构在其他视图中提供了菜单。我不想透露具体的内容(这是我的想法),但这应该是足够的信息。
我目前正在这样的观点之间切换:
newViewController *newView = [[newViewController alloc] init];
[self presentModalViewController:newView animated:YES];
根据目前为止的答案,模态视图旨在快速和暂时显示动画,但我正在寻找更持久的方法。
有更好的方法吗?请提供您的回复示例代码。谢谢!
编辑:我为原本没有足够的信息而道歉。我发布了更多信息。如果您还有其他需要,请发表评论。答案 0 :(得分:2)
使用模态视图控制器通常会在您需要临时显示视图时保留,例如Apple的消息应用程序显示“新消息”控制器时。另一种做你想做的事情,需要更多的设置,是:
[self.navigationController pushViewController:newView animated:YES];
可以找到一个很好的解释,概述两者之间的差异here以及有关Stack Overflow here和here的问题。可以找到关于如何设置UINavigationController
的精彩小教程here,之前的SO问题here涵盖自定义动画主题,而一些源代码提供{{3}也可以帮助你。唷。这是很多链接。
答案 1 :(得分:0)
模态视图控制器具有在程序流中获取“额外信息”的明确目的。它们的设计不是为了消耗更多/更少的内存。实际上,没有特定类型的视图控制器在设计时考虑到内存消耗。如果您要收集分层的信息,UINavigationController
加上UITableViewController
可能就行了。同样,如果您需要一条信息(并且,例如,如果没有获得此信息,则无法继续),您将提供一个模式视图控制器(一种)警告用户。