2013-02-11 102 views
0

我想做一個容器視圖控制器,其工作方式類似於導航控制器。當我向堆棧添加東西時,我該如何處理已經存在的視圖控制器?iOS查看控制器遏制父/子呼叫舞蹈

它仍然是我的孩子,但我不希望它在視圖層次結構中的視圖。我應該在它上面調用removeFromParentViewController,並且只保留一個單獨的堆棧,在堆棧中?所以當上面的視圖彈出時,我可以檢查我應該推回哪個視圖以返回到前一視圖。

或者我應該只是刪除它的視圖,而不removeFromParentViewController調用,並添加另一個子控制器,並將其視圖添加到容器視圖層次結構?

基本上我該如何處理不在屏幕上的控制器?

回答

0

「堆棧」只是一個導航控制器用來跟蹤其視圖控制器的數組。如果你正在構建你自己的,你還需要一個數組。導航控制器工作的方式,當按下控制器時,該控制器被添加到數組中,並且如果彈出一個控制器,那麼將從數組中移除該控制器。當你做一個轉換時,屏幕上的應該調用removeFromParentViewController,所以它不再處於層次結構中(但是如果它由於另一個被推送而離開,你會把它留在你的數組中 - 這就是控制器知道的方式哪一個回到流行音樂)。您應該使用transitionFromViewController:toViewController:duration:options:animations:completion:執行從一個控制器到下一個控制器的轉換。