IOS推送许多视图控制器没有弹出

时间:2014-08-08 19:58:58

标签: ios pushviewcontroller

我想知道如果我们再次继续推动相同的视图控制器会发生什么。我有4个按钮,每个按钮触发一个视图。所有4个视图中都有4个按钮。所以每次单击按钮时都会加载视图。所以我正在推动一个视图控制器。这会导致某种内存管理问题还是其他问题?还有其他办法吗?我不能使用Tab栏导致设计问题。

我想基本上用4个按钮实现一个TAB吧。由于设计问题,我无法使用标签栏

2 个答案:

答案 0 :(得分:1)

这不会导致任何特定的内存管理问题。每次分配对象时都会占用一些内存。当您按下视图控制器时,您只是分配该对象的新副本。无论是视图控制器还是数据模型还是字符串,每个对象都会占用一些内存。您可以轻松地分析每次推动视图控制器时使用多少额外内存,但很可能它可以忽略不计(可能远小于1kb,具体取决于您在那里的数量)。我只是描述了我的一个视图控制器,它使用了320个字节。因此,对于简单的数学运算,我们假设每次推送占用1kb的内存。 iPhone 5拥有1Gb的RAM。这足以容纳大约100万个视图控制器。所以我不担心。

但是,如果您想担心它,那么您应该在视图控制器中实现didReceiveMemoryWarning并释放任何不需要的对象。

答案 1 :(得分:0)

您可以从其他4个控制器添加回btn。在背面,它从导航堆栈内存中被删除。

如果您仍需要手动管理它,可以使用[self.navigationController viewControllers]检查viewController是否存在并做出适当的决定。