Freigeben von Daten zwischen ViewControllern in einer Anwendung mit Registerkarten

Ich möchte eine Variable für einige ViewController in einer Anwendung mit Registerkarten freigeben. Ich habe versucht, die [NSUserDefaults] zum Speichern und Laden der Variablen zu verwenden, aber die Anwendung stürzt jedes Mal ab. Hier ist mein Code im SecondViewController

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.

        totalApples = [[NSUserDefaults standardUserDefaults]integerForKey:@"numberOfApples"];
        [self setText:[NSString stringWithFormat:@"%g", totalApples] withExistingAttributesInLabel:self.l1];

    }

Es hebt das [super viewDidLoad] hervor; wenn ich auf die Registerkarte klicke, um die zweite Ansicht als Ursache für den Absturz zu öffnen.