2013-02-11 43 views
0

我想做一个容器视图控制器,其工作方式类似于导航控制器。当我向堆栈添加东西时,我该如何处理已经存在的视图控制器?iOS查看控制器遏制父/子呼叫舞蹈

它仍然是我的孩子,但我不希望它在视图层次结构中的视图。我应该在它上面调用removeFromParentViewController,并且只保留一个单独的堆栈,在堆栈中?所以当上面的视图弹出时,我可以检查我应该推回哪个视图以返回到前一视图。

或者我应该只是删除它的视图,而不removeFromParentViewController调用,并添加另一个子控制器,并将其视图添加到容器视图层次结构?

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

回答

0

“堆栈”只是一个导航控制器用来跟踪其视图控制器的数组。如果你正在构建你自己的,你还需要一个数组。导航控制器工作的方式,当按下控制器时,该控制器被添加到数组中,并且如果弹出一个控制器,那么将从数组中移除该控制器。当你做一个转换时,屏幕上的应该调用removeFromParentViewController,所以它不再处于层次结构中(但是如果它由于另一个被推送而离开,你会把它留在你的数组中 - 这就是控制器知道的方式哪一个回到流行音乐)。您应该使用transitionFromViewController:toViewController:duration:options:animations:completion:执行从一个控制器到下一个控制器的转换。