我有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作为一个以新得分,计时器等开始的新游戏。