This is a SpriteKit game.

I am using a singleton to store a single 'Show' object to be accessible throughout the game. The 'Show' class has an NSString property 'showTitle'.

In ViewController1, I set the 'Show' property of the singleton. To test.. I then printed out a string property of 'Show' (showTitle) from the singleton and it prints the string correctly.

After segueing to ViewController2, I again print out the same string property of 'Show' (showTitle) from the singleton and it again prints the string correctly.

THEN, the spritekit scene is initialized from ViewController2. I attempt to print the same string property
 of 'Show' from the singleton, and it prints null instead of the string. I went further and segued to ViewController3, tried to print the showTitle from the singleton..... NULL. 

Why am I able to access the 'Show' property of the singleton in ViewControllers 1 & 2, but not from within the sprite kit scene or ViewController3. Where am I going wrong? 

ShowSingleton.h

```
#import <Foundation/Foundation.h>
#import "Show.h"

@interface ShowSingleton : NSObject

@property (nonatomic, strong) Show* currentShow;

+(ShowSingleton *)singleton;

@end

```

ShowSingleton.m

```
#import "ShowSingleton.h"

@implementation ShowSingleton

@synthesize currentShow;

+(ShowSingleton *)singleton {
    static dispatch_once_t pred;
    static ShowSingleton *shared = nil;

    dispatch_once(&pred, ^{
        shared = [[ShowSingleton alloc] init];
    });

    return shared; }

@end

```

ViewController1:

```
- (IBAction)openShow:(UIButton*)sender
    {
        //showsarray is an array of 'Show' objects retrieved through core data in another class
        [ShowSingleton singleton].currentShow = [showsarray objectAtIndex:sender.tag];

        NSLog(@"Opened show: %@", [ShowSingleton singleton].currentShow.showTitle);
        //The above line correctly prints the selected showTitle from the singleton
}

```

After openShow: completes, a segue opens ViewController2. ViewController2 initializes the SpriteKit scene.

ViewController2:

```
- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

    SKView * skView = (SKView *)self.view;
    if (!skView.scene)
    {
        skView.showsFPS = YES;
        skView.showsNodeCount = YES;
        SKScene * scene = [iMarchMyScene sceneWithSize:skView.bounds.size];
        scene.scaleMode = SKSceneScaleModeAspectFill;
        [skView presentScene:scene];
    }
}

- (void)viewDidLoad
{
    //The following line correctly prints the showTitle from ViewController2
    NSLog(@"processing show: %@", [ShowSingleton singleton].currentShow.showTitle);
}

```

myScene.m:

```
-(id)initWithSize:(CGSize)size
{
    if (self = [super initWithSize:size])
    {
        if ([ShowSingleton singleton].currentShow)
        {
            //This always gets called, which tells me the object exists, but null is printed for showTitle
             NSLog(@"show title from scene: %@", [ShowSingleton singleton].currentShow.showTitle);
        }
    }
    return self;
}

```