【问题标题】:viewdidload executed as soon as instantiateviewcontroller is called一旦调用 instantiateviewcontroller 就执行 viewdidload
【发布时间】:2016-03-04 13:07:28
【问题描述】:

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

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

【问题讨论】:

  • 我的想法是您的视图控制器在“instantiateviewcontroller”调用之前以其他方式实例化。
  • 感谢您的回复,但不,我没有在其他任何地方加载视图控制器。另外,我没有在代码中的任何地方调用 viewcontroller.view
  • 仔细检查故事板是否与视图控制器保持一致。
  • 没有segues,这就是我使用intantiateViewController方法的原因
  • 请出示您的代码

标签: ios uistoryboard viewdidload


【解决方案1】:

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

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

在 SampleViewController.h 类的头文件中

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

【讨论】:

  • 这正是我正在做的事情,但是在第一行 SampleViewController *sample = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"sample"]; 被执行之后,viewDidLoad 被调用其中你会发现 self.someData 和 self.someName 是 nil 因为他们还没有由他们的设置者设置。
  • @NishitGoenka 我认为您应该提供一个示例项目,将其上传到 github,让人们在这里看到全貌。否则我看不出为什么 Mr.Fingers 的回答对你的问题有任何错误。
  • 我做的事情和手指先生在这里写的完全一样。问题出在情节提要中,我将 UITableview 连接为 tableview 出口和视图出口并删除了 UIView 对象,因此 UITableview 在实例化时正在加载,因为它是 viewcontroller 的视图出口,因此 viewDidLoad() 被调用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 2016-06-29
  • 1970-01-01
  • 2018-08-17
  • 2018-12-04
  • 2019-07-20
相关资源
最近更新 更多