模态视图控制器如何与堆栈一起工作?

时间:2012-08-03 21:44:23

标签: iphone ios modal-dialog segue

我是iPhone编程新手。并且,我试图制作一个200级的游戏。我想使用模态segueing因为我不希望顶部的naviagational栏,我也想要交叉溶解动画。说我有一个vc。然后我有vc 2

好的,所以vc 1模块化为vc 2

然后我在vc 2上有一个按钮以转回vc 1

那么,程序是否知道从堆栈中弹出vc 2?或者我只是创建了一个内存泄漏,所以现在vc1,vc2和vc1都在堆栈而不是vc1。

然后还是如果我有vc1到vc2,vc2到vc3,并且在vc3中我有一个回到vc 1的按钮,程序会从堆栈中弹出vc 2和vc 3吗?或将4在堆栈?而且无论如何,因为使用模态segue没有真正的后退按钮(就像在导航栏中一样,导航栏上的后退按钮),模态segue甚至有堆栈吗?

我的意思是,还是独立的?比方说,vc是vc2,vc2是vc3。现在,vc 2和1甚至在堆栈上?还是仅仅是vc3?

抱歉,我对这一切感到有些不安,我不知道如何制作我的游戏。因为如果我有100个具有不同级别的视图控制器,那么当然为了进行模态划分,我需要在每次向右移动时编写一些从堆栈中弹出的vcs,这样我就不会在堆栈上结束100个控制器?我甚至不知道如何告诉我的程序如何弹出视图控制器。

1 个答案:

答案 0 :(得分:2)

因此,模态segue主要用于呈现中断应用程序的常规流程的内容。它并不适合顺序呈现多个视图控制器,因为正如你所说,如果你有一个返回到第一个视图控制器的segue,它不会从堆栈中弹出任何东西。

您想要查找Apple提供的一个View Controller容器,以查看哪一个最适合浏览视图控制器的顺序列表。

页面视图控制器非常有用,因为它一次只能保存一个或两个视图控制器,从iOS 5开始,您可以将transitionStyle属性设置为'UIPageViewControllerTransitionStyleScroll'以向左和向右滚动(或向上和向上滚动)在视图控制器之间。

如果您不喜欢Apple提供的视图控制器,请查看UIViewController的文档,了解如何编写自己的自定义容器视图控制器。这样您就可以定义自己的堆栈,根据需要弹出堆栈并进行解散转换。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html%23//apple_ref/doc/uid/TP40006926-CH3-SW81