I have two SKScene SceneA
,SceneB
.
I have implemented two methods(willMoveFromView
,didMoveToView
) in each scene.
Assume, I am currently in SceneA
and i want to present SceneB
via this code block:
SceneB *sceneB = [SceneB sceneWithSize:self.view.bounds.size];
sceneB.scaleMode = SKSceneScaleModeAspectFill;
[self.view presentScene:sceneB];
When I present this scene, I can see this:
sceneA willMoveFromView
sceneB didMoveToView
sceneA init
sceneB willMoveFromView
sceneA didMoveToView
And finally I return to first SceneA
! There is no other code that pushes SceneA
from SceneB
. I don't know what to do, please help
UPDATE:
As @LearnCocos2D says, viewWillLayoutSubviews
is forced every time I present scene
And I present sceneA in viewWillLayoutSubviews
with following code
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
SKView* skView = (SKView*)self.view;
SceneA *sceneA = [SceneA sceneWithSize:self.view.bounds.size];
sceneA.scaleMode = SKSceneScaleModeAspectFill;
[skView presentScene:sceneA];
}