我使用UIViewcontroller
instantiateviewcontroller
方法从故事板加载UIStoryboard
。执行此方法后,即使在viewDidLoad()
之前,也会调用initWithCoder
方法。这种行为是不同的,与延迟加载相矛盾。
现在,问题是如何在UIViewcontroller
上设置属性,以便我可以在viewDidLoad
方法中使用它们?
答案 0 :(得分:0)
我没有正确理解你的初步问题。 但我认为你想要这样的东西
-(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];
}