Как получить переданные данные из другого контроллера представления? - Цель-С - PullRequest
0 голосов
/ 07 ноября 2018

SendDataVc.m - отправка данных из.

GetDataVC.m - получение данных, отправленных с SendDataVc.m

SendDataVC.m:

NSString *theData = @"Sending data";

GetDataVC *passdataVC = [[GetDataVC alloc] init];

passdataVC.theData = theData;

GetDataVC.h:

@property (strong, nonatomic) NSString *theData;

GetDataVC.m:

-(void) getData
{
    NSLog( @"%@", _theData);
}

Я пытался сделать это, но вместо этого я получил ноль.

Ответы [ 4 ]

0 голосов
/ 08 ноября 2018

Я думаю, что приложение не работает с функцией - (void) getData, вы должны вызывать эту функцию на - (void)viewDidLoad или - (void)viewWillAppear или как-то еще, как показано ниже:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self getData];
}
-(void)getData {
    NSLog(@"%@", _theData);
}
0 голосов
/ 07 ноября 2018

Где вы выполняете функцию getData? Если вы выполняете getData в viewDidLoad или init или где-то перед тем, как установить данные. Вы можете выполнить функцию с помощью кнопки. Я думаю, что это решит проблему.

0 голосов
/ 07 ноября 2018

Просто реализуйте установщик свойства theData.

Вставьте приведенный ниже код в GetDataVC.m.

- (void)setTheData:(NSString *)theData {
    _theData = theData;
    NSLog(@"theData has set: %@", _theData);
}

ссылка: Документ Apple

0 голосов
/ 07 ноября 2018

Вы не можете создать экземпляр UIViewController таким образом.

Используйте следующий подход, в котором @"GetDataVC" является идентификатором контроллера представления, который вы собираетесь создать:

GetDataVC *passdataVC = (GetDataVC*)[self.storyboard instantiateViewControllerWithIdentifier:@"GetDataVC"];
passdataVC.theData = theData;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...