Again, as long as you think in terms of "call", you're never going to get anywhere. So, let's play "translations". You said:
>> I want to make a pause button on GameViewController class that calls the method "pause" in GameScene class
"Calls"? No, no. Let's translate that into this:
>> I want my Pause button action in my game view controller to send a "pause" message to my game scene.
That we can do! All you need is a reference to the game scene (that is, an instance of the GameScene class, not the GameScene class itself). How to get that reference? Well, if you started from Xcode's Game app template, your game view controller already has a "skView" property which is of type SKView, and SKView objects have a "scene" property, which is the game scene that's currently running. So, you can do something like this:
- (IBAction) pause: (id) sender { // GameViewController.m
[self.skView.scene pause];
}
- (void) pause { // GameScene.m
SKNode *image = [self childNodeWithName@"Image"];
[image removeActionForKey:@"Action"];
[image removeActionForKey:@"Animation"];
}
(Or something like that, depending on the details of your app so far.) Once you have a reference to the instance, it's easy.