调用 instantiateviewcontroller 后立即执行 viewdidload

viewdidload executed as soon as instantiateviewcontroller is called

我正在使用 UIStoryboardinstantiateviewcontroller 方法从故事板加载 UIViewcontroller。一旦执行此方法,就会调用 viewDidLoad() 方法,甚至在 initWithCoder 之前。这种行为是不同的,并且与延迟加载相矛盾。

现在,问题是如何在 UIViewcontroller 上设置属性,以便我可以在 viewDidLoad 方法中使用它们?

我没有正确理解你最初的问题。 但我想你想要这样的东西

-(void) loadNewVC {
    SampleViewController *sample = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"sample"];
    NSData *birthData =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://iglesiasSite.com"]];
    sample.someName = @"Enrique Iglesias";
    sample.someData = birthData;

    [[[UIApplication sharedApplication] keyWindow] setRootViewController:sample];
}

在 header 中 SampleViewController.h class

@interface SampleViewController : UIViewController

@property (nonatomic, strong) NSString *someName;
@property (nonatomic, strong) NSData *someData;
@end

SampleViewController.m

  - (void)viewDidLoad {
    [super viewDidLoad];

    [self processData: self.someData andName: someName];
}