在使用展开segues时,Dealloc不会调用所有视图控制器

时间:2014-07-05 21:33:52

标签: ios xcode segue uistoryboardsegue dealloc

我正在设计一款带有6个视角控制器的游戏。

我使用模态segues向前导航和展开segues以导航回来。

通过视图控制器的游戏流程是A - > B - > C - > D - > E - > F。

当我尝试从F放松到A时,仅在B和C上调用dealloc。这意味着每次玩游戏时使用的内存都会不断增加。

我最初认为问题是由于某些东西被保留导致dealloc不能在视图控制器D和E上被调用。但是,如果我将展开segue设置为从F到D dealloc被调用为F和E似乎排除了这个问题。

我也有一个直接从视图控制器A到F的路径。当我在这种情况下展开时,在f上正确调用dealloc。

查看控制器F和C在A上调用相同的展开操作。我认为这不是原因,因为我尝试将其更改为每个视图控制器使用唯一的展开操作。

有关导致此问题的任何想法?我复制了下面使用的一些代码。请让我知道其他代码(如果有的话)将有助于解决此问题。任何帮助将不胜感激。

展开动作如下:

- (IBAction)unwindToMainMenu:(UIStoryboardSegue *)unwindSegue
{}

调用以从视图控制器F触发展开segue到A:

[self performSegueWithIdentifier:@"ReturnToMainMenu" sender:self];

1 个答案:

答案 0 :(得分:1)

根据您的描述,问题应该在D上。 当您从D直接转到F时,可能会从其他人中保留A ,因此不会取消分配未被取消分配后,它会继续保留 E,并保留F

所以,请专注于D;)