Я не понимаю, почему мой не работает.
Вариант использования:
- Тест 1: я запускаю игру, я нажимаю кнопку воспроизведения (presentScene) из первой сцены, поэтому я перехожу ко второй сцене. Без проблем.
- Тест 2: я запускаю игру, нажимаю кнопку Option (presentViewController) в первой сцене. На контроллере Optin я нажимаю, чтобы закрыть ViewControllerAnimated. Если я хочу нажать кнопку «Играть», на экране нет никаких изменений, но игра просто отстает. Я не понимаю, почему сцена остается на экране и почему нет перехода.
Вывода ошибок нет.
Контроллер кода:
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showParam) name:kNotificationShowParam object:nil];
//...
SKView * skView = (SKView *)self.view;
SKScene * scene = [[MenuScene alloc ]initWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[skView presentScene:scene];
}
- (void)showParam
{
ParamViewController *ParamView = [[crazyButterflyParamViewController alloc]init];
[self presentViewController: ParamView animated: YES completion:^ {
}];
}
Код Парамконтроллера:
//method on button
-(void)goToMenu
{
[self.view.window.rootViewController dismissViewControllerAnimated:YES completion:^{
}];
}
Код МенюСцена:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for (UITouch* touch in touches)
{
if ([_button containsPoint:[touch locationInNode:_button.parent]])
{
SKTransition *transition = [SKTransition fadeWithDuration:0.4];
SKScene *scene = [[GameScene alloc] initWithSize:self.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[self.scene.view presentScene:scene transition:transition];
break;
}
if ([_buttonParam containsPoint:[touch locationInNode:_buttonParam.parent]])
{
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationShowParam object:nil];
break;
}
}
}