Passa um valor de um ViewController para outro em Objective-C
Eu sou relativamente novo no Objective-C, na programação. A única coisa que estou suportando atualmente é passar um valor do primeiroViewController
para o próximo.
Eu liesta entrada aqui e isso não me ajudou. O que é engraçado, já que sua resposta tem quase 500 votos, então devo ser o problema. O que eu fiz foi o seguinte.
Eu abri meuPreviewViewController.m
e adicionou a seguinte linha#import "MainViewController.h"
desde que eu queria passar um valor doPreviewViewController
para o `MainViewController. Então, quando eu mudar os layouts (o que funciona com sucesso) eu quero passar um valor.
MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId = @"539897197";
Como você pode ver, eu quero passar o userId. Para isso, também criei uma propriedade noMainViewController.h
@property ( nonatomic, strong ) NSString *userId;
Agora, na minhaMainViewController.m
Eu quero acessar o userId. Mas quando eu logar, o console me diz que énull
. No entanto, quando eu defino a variável logo antes daNSLog
funciona, então parece que a passagem é o problema.
Adicionalmente noMainViewController.m
Eu tenho a seguinte linha
@synthesize userId = _userId;
mas mesmo quando eu removi essa linha e mudei oNSLog
paraNSLog(@"%@",self.userId);
o mesmo problema ocorreu.
Como posso passar com sucesso as variáveis? Qual passo estou fazendo errado?
EDITAR É assim que eu troco os layouts
UIViewController *viewController = [[MainViewController alloc]init];
MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId = @"539897197";
[self presentViewController:viewController animated:YES completion:NULL];