我在理解viewcontroller堆栈时遇到了一些严重的问题。 我的应用程序何时使用堆栈来保存以前的viewcontrollers?只有当我使用导航视图控制器或任何时候我使用普通的viewcontrollers并在它们之间进行模态化时?
所以我只是想知道我是否使用某种链式例程,例如从vc 1到vc 2以及从vc 2返回到vc 1.没有导航控制器,只是模态segue,没有展开。 我的应用程序是否因为堆栈而出现性能问题(每次我去的时候都会增长)或者它没有任何区别?
----更新
基本上这是我的问题。如果我完成了应用程序的例行程序,每次进行转换时,视图都会堆积起来。
答案 0 :(得分:2)
UINavigationController
将保留您推送到其导航堆栈的任何控制器,直到您将其弹回。
任何UIViewController
将保留一个模态呈现的控制器,直到子控制器被解除为止。
在任何一种情况下,每个控制器至少会消耗一些内存,直到你将其删除。构建不断扩展的控制器堆栈的应用程序可能会遇到许多问题,包括:
我怀疑如果您将控制器管理与您向用户呈现的任何视觉比喻相匹配,每个人都将获得更好的体验。