I'm fairly new to Objective-C, programming. The one thing, I'm currently putting up with is passing a value from the first ViewController
to the next one.
I've read this entry here and it didn't help me. Which is funny, since his answer has nearly 500 votes, so I must be the problem. What I did was the following.
I opened my PreviewViewController.m
and added the following line #import "MainViewController.h"
since I wanted to pass a value from the PreviewViewController
to the `MainViewController. Then, when I switch the layouts ( which successfully works ) I want to pass a value.
MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId = @"539897197";
As you can see, I want to pass the userId. For that, I also created a property in the MainViewController.h
@property ( nonatomic, strong ) NSString *userId;
Now, In my MainViewController.m
I want to access the userId. But when I log it, the console tells me it is null
. However, when I set the variable right before the NSLog
it works, so it seems like the passing is the problem.
Additionally in the MainViewController.m
I have the following line
@synthesize userId = _userId;
but even when I removed that line and changed the NSLog
to NSLog(@"%@",self.userId);
the same problem occurred.
How can I successfully pass the variables? Which step am I doing wrong?
EDIT
This is how I switch the layouts
UIViewController *viewController = [[MainViewController alloc]init];
MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId = @"539897197";
[self presentViewController:viewController animated:YES completion:NULL];
See Question&Answers more detail:
os