Передать значение из одного ViewController в другое в Objective-C

Я довольно плохо знаком с Objective-C, программированием. Одна вещь, с которой я в настоящее время миримся, это передача значения из первогоViewController к следующему.

я прочелэта запись здесь и это не помогло мне. Что забавно, поскольку его ответ имеет почти 500 голосов, поэтому я должен быть проблемой. То, что я сделал, было следующим.

Я открыл свойPreviewViewController.m и добавил следующую строку#import "MainViewController.h" так как я хотел передать значение изPreviewViewController в `MainViewController. Затем, когда я переключаю раскладки (что успешно работает), я хочу передать значение.

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

Как видите, я хочу передать userId. Для этого я также создал свойство вMainViewController.h

@property ( nonatomic, strong ) NSString *userId;

Теперь по моемуMainViewController.m Я хочу получить доступ к идентификатору пользователя. Но когда я регистрирую это, консоль говорит мне, что этоnull, Однако, когда я устанавливаю переменную прямо передNSLog это работает, так что кажется, что прохождение - это проблема.

Дополнительно вMainViewController.m У меня есть следующая строка

@synthesize userId = _userId; 

но даже когда я удалил эту строку и изменилNSLog вNSLog(@"%@",self.userId); такая же проблема произошла.

Как я могу успешно передать переменные? Какой шаг я делаю не так?

РЕДАКТИРОВАТЬ Вот так я переключаю раскладки

UIViewController    *viewController         = [[MainViewController alloc]init];
MainViewController  *mainViewController     = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
mainViewController.userId                   = @"539897197";
[self presentViewController:viewController animated:YES completion:NULL];

Ответы на вопрос(5)

Ваш ответ на вопрос