我有一个以编程方式创建的UIViewController
,名为“VC”,最重要的是我需要加载现有的UIViewController
。
我使用下面的代码来做到这一点,它工作正常。
我可以在“VC”上看到我现有的UIViewController
,但在现有视图控制器中没有检测到任何viewDidAppear
或viewWillAppear
。
我从viewDidAppear
和viewWillAppear
获取数据,所以我现有的视图控制器集合视图一直是空的。
ExistingViewController* presObj= [self.storyboard instantiateViewControllerWithIdentifier:@"oad"];
[vc.view addSubview:presObj.view];
[self addChildViewController:presObj];
[presObj didMoveToParentViewController:self];
答案 0 :(得分:0)
您是否初始化了故事板课程?
self.storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
所以我现有的ViewController集合视图一直是空的 - >你在代码中使用集合视图吗?
答案 1 :(得分:0)
首先,您需要添加addChildViewController。然后将该childviewcontroller视图添加到主视图中。
只需在添加到视图子视图之前添加[self addChildViewController:presObj];
。
ExistingViewController* presObj= [self.storyboard instantiateViewControllerWithIdentifier:@"oad"];
[self addChildViewController:presObj];
[vc.view addSubview:presObj.view];
[presObj didMoveToParentViewController:self];
答案 2 :(得分:-2)
好的,如果你这样加载那么现有视图控制器的ViewDidLoad()会加载,你可以放一个条件(如果需要的话)然后你可以调用ViewDidAppear()ViewWillAppear()如下所示
existingviewcontroller *obj=[[existingviewcontroller alloc]init];
[obj viewWillAppear:YES];
[obj viewDidAppear:YES];
这将有效