Передать значение из одного 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];