SpriteKit SKView no longer transitions between scenes in iOS 9

We have a code base that was written and released in 2013, but in iOS 9 the app no longer transitions between

SKScene
s when the
presentScene:transition:
message is sent to our
SKView
.


Here's what we tried:

  • Disabling
    Metal
    via the
    Info.plist
  • Using
    [SKTransition transitionWithCIFilter:duration:]
    instead of the predefined animations
  • Tweaking
    zPosition
  • Switching to regular
    UIView
    animations (this made our
    SKNode
    s disappear)


None of the above attempts fixed the issue. Note that everything transitions properly in iOS 8

Any suggestions on how to locate/fix/workaround the bug?

You might need to show your transition code so people can see what you are actually doing.

Same problem here. Don't know what to do.

More details and code samples can be seen here:

http://stackoverflow.com/questions/33245364/spritekit-skview-no-longer-transitions-between-scenes-in-ios-9

Hi nhillyer,



Thanks for posting about this issue. Can you check if the scene your trying to present is paused? If this is still happening for you, could you please file a bug report for this and attach a project that has the specific code that seems to be causing this issue for you?



Thanks,



-Tim

Exactly the same issue here. Have you got a solution?

At the moment, try presentScene: without transitions. It will work.

Also experiencing this issue. By using presentScene without the transition I am able to present the next scene, but the game play suffers without the transition. Has anybody come up with a better workaround?

Depending on the transition that you would like to use, but for a simple fade-out then fade-in effect, what you could try the following:


SceneA, run an action to fade out the scene's alpha and then transition to SceneB (in the completion handler or otherwise)

self.runAction(SKAction.fadeOutWithDuration(1.0)){
     self.view!.presentScene(sceneB)
}


and then in SceneB didMoveToView, start with an alpha of zero and fade in

self.alpha = 0
self.runAction(SKAction.fadeInWithDuration(1.0))


Not pretty, but better than no transition at all.

Just spent about an hour figuring out why presenting a scene with a transition didn't work and found this thread. Is this an actual bug? Should someone (myself?) file something somewhere? I'm getting this issue on Xcode 7.2, iOS 9.2.

Hi guys,

I have tried it recently and faced the same issue. But I found out an interesting thing that:

It will work if you drag and drop the SKView in the storyboard instead of creating it manually.

Check my answer here: https://stackoverflow.com/questions/33245364/spritekit-skview-no-longer-transitions-between-scenes-in-ios-9

SpriteKit SKView no longer transitions between scenes in iOS 9
 
 
Q