Übergeben Sie einen Wert von einem ViewController zu einem anderen in Objective-C

Ich bin ziemlich neu in Objective-C, Programmierung. Die eine Sache, ich bin derzeit dabei, mit der Sie einen Wert aus der ersten ViewController zum nächsten.

Habe ich gelesen dieser Eintrag hier und es hat mir nicht helfen. Was lustig ist, da seine Antwort hat fast 500 Stimmen, also ich muss das problem sein. Was ich gemacht habe, war folgende.

Öffnete ich meine PreviewViewController.m und fügte hinzu, die folgende Zeile #import "MainViewController.h" da wollte ich übergeben Sie einen Wert aus der PreviewViewController zu den " MainViewController. Dann, wenn ich schalten Sie die layouts ( die erfolgreich funktioniert ) möchte ich einen Wert übergeben.

MainViewController  *mainViewController     = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId                   = @"539897197";

Wie Sie sehen können, will ich übergeben Sie die Benutzer-id. Für dass, ich habe auch ein Grundstück in der MainViewController.h

@property ( nonatomic, strong ) NSString *userId;

Nun, In meinem MainViewController.m ich möchte den Zugriff auf die userId. Aber wenn ich mich einloggen es, die Konsole sagt mir, es ist null. Allerdings, wenn ich die variable direkt vor der NSLog es funktioniert, so scheint es, die Weitergabe ist das problem.

Zusätzlich in die MainViewController.m ich habe die folgende Zeile

@synthesize userId = _userId; 

aber selbst wenn ich entfernt, die Leitung und änderte die NSLog zu NSLog(@"%@",self.userId); das gleiche problem aufgetreten.

Wie kann ich erfolgreich an die Variablen? Welchen Schritt mache ich falsch?

BEARBEITEN
Dies ist, wie Wechsel ich die layouts

UIViewController    *viewController         = [[MainViewController alloc]init];
MainViewController  *mainViewController     = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId                   = @"539897197";
[self presentViewController:viewController animated:YES completion:NULL];
  • MainViewController *mainViewController = [[MainViewController alloc] init];
  • Wie gehen Sie aus PreviewViewController zu MainViewController ?
  • Bitte zeigen Sie, wie der code, den Sie verwenden für 'wechseln des layouts'. Könnte das problem sehr trivial: Sie sind vorbei an Wert ein view-controller-Instanz und für die Anzeige verwenden Sie eine andere Instanz von view-controller (zum Beispiel der, dass segue erstellt für Sie).
  • mainViewController.userId = [[NSString alloc] initWithString:@"539897197"];
  • Ich bearbeitete Sie und fügte hinzu, der Teil, wo ich Layouts wechseln
  • [self presentViewController:mainViewController animiert:JA Abschluss:NULL];
  • Gee, es ist schon fast eine Woche her, seit ich das Letzte mal sah diese Frage.
  • mögliche Duplikate von Weitergabe von Daten zwischen View-Controller
  • Sind Sie ernst? Ich bin die Verknüpfung der EXAKT GLEICHE BEITRAG in meinem post. Dein Kommentar ist völlig nutzlos.
  • Sind Sie der Navigation von PreviewViewController zu MainViewController mit NavigationController oder aus MainViewController zu PreviewViewController ?
  • Wenn Sie die navigation von MainViewController zu PreviewViewController, und Sie versuchen, pass Wert von PreviewViewController zu MainViewController, erhalten Sie null. Also lassen Sie mich wissen, die navigation, erste Szenario

Schreibe einen Kommentar