完全删除UIVIewController

时间:2011-11-27 10:51:20

标签: ios uiviewcontroller lifecycle

我有2个ViewControllers A& B. 按下A上的按钮时,B将通过以下代码显示:

 -(void)launchGame
{
    {
    SoloGameVC_iPad *b =  [[SoloGameVC_iPad alloc]initWithNibName:@"SoloGameVC_iPad" bundle:nil];
    [self b animated:YES completion:nil];
    [b release];
    }

然后,B出现,“游戏”以分数计算,触摸,图像视图等开始......

当游戏结束时(例如计时器结束)或者我按下B中显示的取消按钮,我将使用以下代码返回A:

HomeVC_iPad *home = [[HomeVC_iPad alloc]initWithNibName:@"HomeVC_iPad" bundle:nil];
[self presentViewController:home animated:YES completion:nil];
[home release];

A出现,我可以通过之前的代码选择其他选项,游戏类型和重新启动B.游戏选项,配置等存储在全局委托中。

当B第二次出现时,我看到得分被计算两次,好像旧的B仍在那里并且该方法是两次调用(新B上的更新得分和旧B上的更新得分)。

在分配配置文件(仪器)中,我看到周期A-> B-> A-> B使存储器增长,因为第一个B并未真正从存储器堆栈中移除。

我的问题:什么是编码,以确保当我做A-> B-> A B完全从执行中消失?我想从头开始重新编写B作为一个以新得分,计时器等开始的新游戏。

0 个答案:

没有答案