Итак, мое меню вызывает игру с таким фрагментом кода:
game = [[Game alloc] init];
[self presentModalViewController:memoryTest animated:FALSE];
Затем появляется UIViewController с обратным отсчетом. Игрок может вернуться в меню во время обратного отсчета. Однако, когда я пытаюсь это сделать, отсчет времени продолжается, и в конце концов игра запускается, даже несмотря на то, что UIViewController был закрыт (поэтому UIView исчез) в методе backToMenu.
[self.parentViewController dismissModalViewControllerAnimated:FALSE];
Я пытался освободить игровой объект в методе viewDidAppear меню, но безуспешно. Я думал о том, чтобы иметь значение BOOL для «выхода», чтобы обратный отсчет мог проверить, вышел ли игрок из игры, но должен быть лучший способ освободить объект и остановить все вызовы метода внутри него.
Спасибо за помощь.
Метод CountDown:
- (void)countDown {
SoundEffect *sound = [[SoundEffect alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"tick" ofType: @"wav"]];
[sound playAndRelease];
if(self.countDownStep > 0) {
feedback.image = [UIImage imageNamed:[NSString stringWithFormat:@"countdown%d.png",self.countDownStep]];
feedback.hidden = FALSE;
[self performSelector:@selector(countDown) withObject:nil afterDelay:0.8];
}
else {
[self displayMessage:self.startMessage];
[self.game performSelector:@selector(start) withObject:nil afterDelay:0.8];
[self performSelector:@selector(hide) withObject:nil afterDelay:0.8];
}
self.countDownStep--;
}