2012-07-28 45 views
0

我需要加載一些數據到視圖,每次顯示。數據發生變化,每次顯示時間視圖,所以我想我可以在方法viewDidAppear中加載數據。不幸的是,我發現每次顯示視圖時都不會調用viewDidAppear。如何運行viewDidAppear

顯示視圖中任何其它視圖的代碼是....

[self clearView]; 
[self.view insertSubview:fifthViewController.view atIndex:4]; 

所以我想我可以將其更改爲以下運行viewDidAppear ...

[[self.view insertSubview:fifthViewController.view atIndex: 4 viewDidAppear:YES]; 

Unfortunaely ,這會導致出現錯誤「接收器類型不正確」無效'

如何插入子視圖並調用viewDidAppear?

回答

0

謝謝你對這個問題的幫助。 我已經在插入子視圖的方法中添加了viewDidAppear。

下面是目前爲我工作的代碼。

在最高水平視圖控制器的.m文件,下面的代碼設置viewDidAppear呼叫,然後插入第五子視圖。

-(IBAction) loadFifthView:(id)sender 
{ 

[fifthViewController viewDidAppear:YES]; // sets up viewDidAppear 


[self clearView]; 
[self.view insertSubview:fifthViewController.view atIndex:4]; 


} 

有了上面的代碼段中,下面的代碼段,分佈在第五視圖控制器的.m文件報告它正在工作。

- (void)viewDidAppear:(BOOL)animated 
{ 

NSLog(@" xxxxxxxxxxxxxxxx inside viewDidAppear "); 


} 
0

如果您通過直接修改ViewController.view可見性來顯示視圖,那麼您將不會收到viewDidAppear消息。您需要使用ViewController方法來顯示視圖,例如將控制器推入UINavigationController或使用presentModalViewController方法。你可以使用黑客手動調用viewWillAppear:viewDidAppear:,但我不喜歡這個想法。

+0

謝謝。你能告訴我更多關於這是如何完成的嗎? – K17 2012-07-28 06:19:15