我正在尝试制作一个与导航控制器类似的容器视图控制器。当我向堆栈中添加一些内容时,我该如何使用已经存在的视图控制器?
它仍然是我的孩子,但我不希望它在视图层次结构中查看。我应该在其上调用removeFromParentViewController,并在该堆栈中与它保持一个单独的堆栈吗?因此,当弹出上面的视图时,我可以查看我应该回过头来回到上一个视图。
或者我应该在没有removeFromParentViewController调用的情况下删除它的视图,并添加另一个子控制器,并将其视图添加到容器视图层次结构中?
基本上我该怎么处理屏幕上没有的控制器?
答案 0 :(得分:0)
“堆栈”只是一个导航控制器用来跟踪其视图控制器的数组。如果你正在建造自己的,你也需要一个阵列。导航控制器的工作方式,当按下控制器时,该控制器被添加到阵列中,如果弹出一个控制器,则从阵列中移除该控制器。当您进行转换时,屏幕上的那个应该调用removeFromParentViewController,因此它不再位于层次结构中(但如果由于另一个被推送而消失,您将把它留在数组中 - 这就是控制器知道的方式哪一个回到流行音乐上)。你应该使用transitionFromViewController:toViewController:duration:options:animations:completion:从一个控制器转换到下一个控制器。