0

Das Storyboard meiner iOS-Anwendung enthält einen NavigationController mit einem Root-ViewController. Von einem sekundären Ansichts-Controller möchte ich programmatisch den Root-VC mit dem angehängten NavigationController anzeigen, der oben angezeigt wird, und gleichzeitig den Root-VC mit einigen Daten instantiieren.ViewController mit Daten initialisieren und programmgesteuert auf dem Bildschirm anzeigen

ich habe folgende bisher im Sekundär View-Controller:

UINavigationController* nav = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:nil] instantiateViewControllerWithIdentifier:@"NavController"]; 
UIViewController* viewController = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:nil] instantiateViewControllerWithIdentifier:@"RootVC"]; 
viewController.data = @"My test data"; 

[self presentViewController:nav animated:YES completion:nil]; 

Die VC root Displays erfolgreich mit der Navigationsleiste am oberen Rand, jedoch, wenn ich die folgenden in der rootVC Logik drucken, es kommt as null:

NSLog(@"Initialized data: %@", self.data); // null 

Wie kann ich das beheben? Es scheint, dass die initialisierten Daten nicht vom sekundären Controller kommen.

Antwort

1

Sie erstellen eine neue Instanz von UIViewcontroller, die den Bezeichner "RootVC" hat und Daten zuweist.

Stattdessen sollten Sie die Daten zu RootViewController der Navigation-Controller etwas wie folgt vergeben:

self.navigationController.viewControllers.firstObject.data = @"My test data"; 

Es ist ein Problem von verschiedenen Instanzen derselben Klasse.

Verwandte Themen