【发布时间】:2014-01-07 03:06:52
【问题描述】:
我有一个由 UINavigationController 组成的应用程序,它从 3 个不同的选项卡推送 ViewControllers。
我预见的问题是当前结构允许用户无休止地将 VC 添加到堆栈中。
我有一个名为药物的选项卡和另一个名为病原体的选项卡。如果您深入研究药物,您会得到一份有效对抗的病原体列表,用户可以选择一种病原体以查看有关它的更多信息。这会导致应用程序推送一个新的病原VC。
现在用户可以深入到病原体易感的药物列表并选择它,这会在药物选项卡中产生一个新的 VC。
等等等等……
每次内存占用增加 1.5Mb。
我怎样才能最好地管理这个?
【问题讨论】:
-
内存从何而来?您应该在不使用时重用/卸载这些资源(可见)。
-
你只是在这两个标签之间切换吗?如果是这样,当从病原体返回药物时,您可以关闭当前的视图控制器。
-
VC 是 UITableViewControllers,我假设 navigationcontroller 保留了它们,因此它可以导航回它们与它们离开时相同的状态。不是这样吗?
-
至于选项卡之间的切换,每个选项卡中都有一个VC的层次结构。虽然我一直在想,如果我确实切换到堆栈上已经有 VC 的选项卡,也许我可以只弹出到该选项卡的根 VC? (不知道这是怎么做到的)
标签: ios objective-c memory uiviewcontroller uinavigationcontroller