Цель-C: Как я могу получить доступ к другому ViewController и изменить в нем пользовательский интерфейс? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь перейти к другому представлению и изменить его интерфейс.

мне удается получить доступ к контроллеру методом "hideElements", но все элементы "NIL" и это ничего не меняет.

(Когда я обращаюсь к обычному ViewController.m без навигации, свойства не равны NIL)

Почему это и как я могу это решить?

ViewController.m:

- (void)hideElements:(NSString *)identifier{
    [_agreeButton setHidden:TRUE];
    [_noThankButton setHidden:TRUE];
    [self cleanButtons];
}

ViewController2.h

#import "ViewController.h"
@property (nonatomic) ViewController *myViewController;

ViewController2.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
      NSString *identifire = [sender text];
      ViewController* vc = (ViewController*)segue.destinationViewController;
      [vc hideElements:identifire];
}

ScreenShot: enter image description here

1 Ответ

0 голосов
/ 17 мая 2018

Кажется, что проблема в том, что представление контроллера представления (и подпредставления, включая выходы) не было создано к тому времени, когда вы звоните hideElements. Таким образом, вы можете сделать пару вещей

1)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  NSString *identifire = [sender text];
      ViewController* vc = (ViewController*)segue.destinationViewController;
      vc.view;
      [vc hideElements:identifire];
}

2)

ViewController2.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  NSString *identifire = [sender text];
      ViewController* vc = (ViewController*)segue.destinationViewController;
      vc.shouldHideElements = YES;
}

ViewController.m

- (void)viewDidLoad {
    if (self.shouldHideElements) {
        [self hideElements];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...