Objective c 目标C:如何访问另一个ViewController并更改其中的UI?

Objective c 目标C:如何访问另一个ViewController并更改其中的UI?,objective-c,Objective C,我正在尝试导航到另一个视图并更改其UI 我设法访问控制器方法“hideElements”, 但是所有的元素都是“NIL”,它不会改变任何东西 (当我在没有导航的情况下访问ViewController.m regular时,属性不是NIL) 这是为什么?我如何解决它? ViewController.m: - (void)hideElements:(NSString *)identifier{ [_agreeButton setHidden:TRUE]; [_noThankButto

我正在尝试导航到另一个视图并更改其UI

我设法访问控制器方法“hideElements”, 但是所有的元素都是“NIL”,它不会改变任何东西

(当我在没有导航的情况下访问ViewController.m regular时,属性不是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];
}
屏幕截图:
问题似乎是在调用
隐藏元素时,视图控制器的视图(以及包括插座的子视图)尚未创建。所以你可以做几件事

(一)

(二)

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];
    }
}

元素是从Outlet创建的吗?是的,它们是在Storyboard中创建的按钮我不明白为什么要在
prepareForSegue
中实例化视图控制器。您应该能够通过
segue
destination
属性访问它。您能给我一个例子吗?
ViewController*vc=(ViewController*)segue.destination我添加了[vc视图];在调用hideElements之前,请确保工作正常!
- (void)viewDidLoad {
    if (self.shouldHideElements) {
        [self hideElements];
    }
}