2011-07-25 53 views
0

我正在使用導航控制器將自定義viewController推送到屏幕上。當我完成並彈出它時,我發現dealloc方法是爲customViewController調用的,但「viewDidUnload」方法永遠不會被調用。這是否意味着觀點仍然存在?如果是這樣的話,這可能是一個記憶問題。如果是這樣的話,我應該在我的customViewContoller的dealloc方法中釋放視圖嗎?謝謝。iPhone - 我應該手動釋放我的customViewController的視圖在其dealloc方法?

回答

1

這是沒有必要的。當您的UIViewController子類收到-dealloc時,您應該釋放所有保留的屬性。然後它會到達[super dealloc]。不能肯定地說,但UIViewController上的-dealloc也應該處理它所有保留的屬性。因此您的觀點將被適當地發佈。

不知道爲什麼-viewDidUnload沒有被調用,但它應該沒有關係。也許如果你彈出視圖控制器時你的應用程序的內存壓力較低,視圖可能會卸載而不釋放整個控制器。

1

通常,您在推送後釋放視圖控制器。例如:

UIViewController *myVC = [[UIViewController alloc] init]; 
[[self navigationController] pushViewController:myVC animated:YES]; 
[myVC release]; 
+0

哦,是的,我做到了。雖然我在談論viewController的視圖。 – Tim

+0

你的意思是myVC.view? – onnoweb

+0

是的,這就是我的意思 – Tim

相關問題