2014-09-26 110 views
0

我有一個加載兩個視圖控制器的根視圖。例如:FirstVCSecondVCDealloc發佈後不立即調用

我在顯示FirstVC作爲應用程序啓動時的根視​​圖控制器,在FirstVC上的某些操作中,我通過首先刪除來加載SecondVC

對於裝載SecondVC我第一次通過

[FirstVCobj.view removeFromSuperView]; 
[FirstVCobj release]; 
FirstVCobj = nil; 

刪除FirstVC後,我分配和創建SecondVC

現在只有打完電話後SecondVCviewdidload()FirstVCdealloc()方法調用。 這是正確的執行路徑,還是由於我犯的一些錯誤? 以上是我如何刪除並創建我的視圖控制器。

+1

什麼類型是FirstVCo bj – 2014-09-26 11:47:58

+0

它只是一個ViewController來處理一些圖像和按鈕的視圖。 – 2014-09-26 11:52:22

+0

FirstVCobj是一個VC?那麼該代碼將無法工作;) – 2014-09-26 11:54:00

回答

1

我認爲這是你正在談論的UIView。


  • addSubview保留看法
  • removeFromSuperView釋放或自動釋放它 - 一個實現細節你不控制

'看到' 它:在把它包您自己的泳池

@autoreleasepool { 
    [FirstVCobj.view removeFromSuperView]; 
    [FirstVCobj release]; 
    FirstVCobj = nil; 
} 
+0

是的,我編輯了我的問題。 – 2014-09-26 11:48:07

+0

是的,你做的發佈,但有一個保留/ autorelease當你添加/刪除視圖 – 2014-09-26 11:51:31

+0

和dealloc只發生在所有版本/ autoreleases完成 – 2014-09-26 11:52:51

0
[FirstVCobj removeFromParentAndCleanup:YES]; 

檢查這可能工作。

+0

這裏假設一個cocos2d對象是正確的? – 2014-09-26 11:47:35

+0

是的,但那種類型的VC在之前的Q中沒有提到 – satishiOS25 2014-09-26 11:51:19

+0

是的,這就是爲什麼我沒有投票或什麼 - 我只是問:) – 2014-09-26 11:52:05