2012-10-24 32 views
0

我注意到viewDidLoad方法從未被調用,當我以模態方式呈現視圖控制器時。在視圖控制器上調用viewDidLoad呈現Modally

即:

InfoViewController *v = [[Global get] infoVC]; 
[self presentModalViewController: v animated: true]; 

有反正我能得到它來調用這個? 我已經把ViewDidLoad代碼放在ViewDidAppear中,我擔心這些項目會在視圖中繪製兩次?如果打開兩次?還是從內存中刪除?

回答

2

viewDidLoad只會在創建控制器時被調用。因此,如果您的: [[Global get] infoVC] 未分配並返回控制器(返回已創建的控制器),viewDidLoad將不會被調用。 In viewDidAppear調整與您的控制器相關的視圖是安全的。如果你在viewDidLoad中創建它們,它們將已經存在。

或者如果你想viewDidLoad調用創建一個新的控制器。

infoViewController *v = [[InfoViewController alloc] initWithNibName:nil bundle:nil]; 
[self presentModalViewController: v animated: true]; 
[v release]; 
1

如果您只是將項目添加到viewDidLoad的視圖中,則可以將該代碼替換爲loadView

相關問題