Preloading textures displaying white screen in Sprite Kit while loading?

I have the code in my viewDidLoad() function in my GameViewController.

SKTexture.preloadTextures(BGTextures, withCompletionHandler: { () -> Void in print("SKTextures have loaded.")})
skView.presentScene(startScene)


If I do this, the background displays a white image while the textures are loading since it has already moved to the startScene, and then background works, which looks ugly.


However, if I do it this way:


SKTexture.preloadTextures(BGTextures, withCompletionHandler: { () -> Void in skView.presentScene(startScene) })


It will load a complete white screen after the splash image is done, which also looks ugly. I would've imagine viewDidLoad() took place to load during the splash screen but it doesn't.


How do I preven white color from showing? I want the textures to load before the user sees anything.

I preload textures in didMoveToView, in the actual GameScene (i.e. not the GameViewController), and that seems to work ok. I only use the SKS scene file as a background, and create all the textures and sprites within the game scene code.

Preloading textures displaying white screen in Sprite Kit while loading?
 
 
Q