The problem is described in the comment below.
GameOverScene *gameOver = [[GameOverScene alloc] initWithSize:self.size];
ViewController *vc = [[ViewController alloc] init];//This is causing the problem.
//The delegate has to be the viewController which is presenting the scene
gameOver.delegate = vc;
NSLog(@"vc = %@",vc);
[gameOver didMoveToView:self.view]; //Why are you calling this line??
//Present the game over scene with the fade in transition
[self.scene.view presentScene:gameOver transition:transition];
Instead of the line:
gameOver.delegate = vc;
Try using this line instead:
gameOver.delegate = self.view.window.rootViewController;
EDIT:
Using the line
gameOver.delegate = (ViewController*) self.view.window.rootViewController;
should remove the warning