2016-01-07 67 views
0

我有一個程序創建的UIViewController命名爲「VC」,最重要的是我需要加載我現有的UIViewControllerviewDidAppear和viewWillAppear方法不叫

我用下面的代碼來做到這一點,它工作正常。 我可以在「VC」上看到我現有的UIViewController,但未檢測到現有視圖控制器中的任何viewDidAppearviewWillAppear

我從viewDidAppearviewWillAppear獲取數據,所以我現有的視圖控制器集合視圖一直是空的。

ExistingViewController* presObj= [self.storyboard instantiateViewControllerWithIdentifier:@"oad"]; 

[vc.view addSubview:presObj.view]; 
[self addChildViewController:presObj]; 
[presObj didMoveToParentViewController:self]; 

回答

-1

好了,如果要加載這樣那麼你的viewDidLoad()的現有視圖控制器將加載,你可以把一個條件(如果需要的話),那麼你可以調用ViewDidAppear()viewWillAppear中()像下面

existingviewcontroller *obj=[[existingviewcontroller alloc]init]; 
     [obj viewWillAppear:YES]; 
     [obj viewDidAppear:YES]; 

這將工作

+2

不,不要這樣做。你不應該明確地調用'viewWillAppear:'或其他生命週期方法。 – rmaddy

0

你初始化故事板類嗎?

self.storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 

所以所有的時間我現有的ViewController集合視圖爲空 - >您使用的是在你的代碼集合看法?

+0

是深信.... – Bangalore

+0

確定你重裝集合視圖? –

+0

我在上面的代碼中,我動態地創建VC,然後嘗試加載現有的ViewCOntrolling上面的代碼 – Bangalore

0

首先你需要添加addChildViewController。然後將該childviewcontroller視圖添加到您的主視圖中。

在添加到視圖子視圖之前,只需添加[self addChildViewController:presObj];即可。

ExistingViewController* presObj= [self.storyboard instantiateViewControllerWithIdentifier:@"oad"]; 
[self addChildViewController:presObj]; 
[vc.view addSubview:presObj.view]; 
[presObj didMoveToParentViewController:self]; 
+0

不,這是一個不工作 – Bangalore

+0

你檢查你的子視圖是添加你的主視圖層次結構。 http://stackoverflow.com/a/20769399/3051458 –

相關問題