ビューコントローラーにプッシュする理由が完全にはわかりません。新しいシーンに移行したいだけの場合は、親ビュー コントローラーに近づくことなく、シーン内からこれを行うことができます。
YourScene *nextScene = [[YourScene alloc] initWithSize:self.size];
SKTransition *reveal = [SKTransition pushWithDirection:SKTransitionDirectionDown duration:3.0];
[self.view presentScene:nextScene transition:reveal];
ビュー コントローラーからこれを呼び出したい場合は、ビュー コントローラーをシーンのプロパティとして追加できます。
#import "YourViewController.h"
@property (nonatomic,weak) YourViewController *viewController;
ビュー コントローラーで、最初のシーンを設定するときに、ビュー コントローラーをその属性に割り当てます。
yourScene.viewController = self;
次に、シーン内からビュー コントローラーのメソッドを呼び出すことができます。
[viewController yourMethod];
つまり:
//YourViewController.h
#import "YourScene.h"
...
-(void)yourMethod;
//YourViewController.m
...
-(void)yourMethod
{
YourScene *nextScene = [[YourScene alloc] initWithSize:self.size];
nextScene.viewController = self;
SKTransition *reveal = [SKTransition pushWithDirection:SKTransitionDirectionDown duration:3.0];
[yourSKView presentScene:nextScene transition:doors ];
}