2012-07-18 75 views
3

如果我有一個名爲B的UIViewController。如果我添加UIViewController C作爲B的子視圖/子視圖控制器。然後我將D添加爲B的子視圖控制器。然後我從B中刪除D。在這種情況下,C的viewDidAppear是否會被調用?什麼時候viewDidAppear被調用?

我問的原因是因爲我沒有得到B的電話來viewDidAppear。我打算在B被解僱時做些事情。

+1

當你刪除B時,它的viewDidDisappear應該被稱爲 – waheeda 2012-07-18 04:46:48

+0

,這很明顯。當C從小B中刪除時,我詢問B的viewDidAppear – adit 2012-07-18 04:49:17

+1

'viewDidAppear'將在視圖完全加載時(即在'viewWillAppear'之後)被調用。當你添加/刪除子視圖時,它不會被調用! – Nina 2012-07-18 04:52:37

回答

5

viewDidAppear在您解除模態視圖時不會被調用。將模態視圖視爲視圖頂部的視圖。

2

我認爲,viewDidAppear不會在添加或刪除子視圖時調用。這背後的原因是,我們添加/刪除了幾個對象作爲子視圖。在此,viewDidAppear將被一次又一次地調用,這是一個很好的機制,它不是而是。當您在當前視圖中加載類對象並將屏幕移動到另一個類的視圖並返回到前一個類時,將調用viewDidAppear。 簡而言之,如果將導航控制器推入新視圖,然後將其彈出到舊視圖,則調用viewDidAppear。

2

正如我現在測試viewDidAppear正在調用時,視圖來屏幕。甚至1px。即使你用任何其他subView覆蓋它,並再次發現它,這種方法將不會再次調用。

這意味着它只會在subView第一次出現後纔會打電話。除非您將其刪除並重新添加。在刪除「D」後,「C」的viewdidAppear問題不會再次調用。

相關問題