我是新手,我根本不懂编码,有人可以用非常简单的方式解释如何解决这个问题吗?
我如何"回去"从模态segue中清除从子菜单导航构建的ViewControllers堆栈?目前我有一个子菜单,它有一个后退按钮,可以进入主菜单。但是我遇到了内存问题,我需要做对。
我实际上没有在这个应用程序中有任何代码,我只有一个菜单和子菜单,可以带来更多带图像的VC(总共超过75个图像)。当我从子菜单进入主菜单时,我需要从内存中清除VC堆栈。我会保持"回来"因为VC之间存在多个交互而不返回子菜单,所以从图像到子菜单的模态偏移。所以我只需要VC堆栈清除从子菜单到主菜单。我可以将简单的代码链接到已经存在的后退按钮但我不知道我实际需要编写什么来撤消segue并从内存中删除VC。
从子菜单到主菜单的展开是否会删除VC堆栈以防止因内存问题而终止?
示例:http://i.imgur.com/LX8CaFX.png
编辑:我尝试使用此Dismiss Segue(http://jeffreysambells.com/2014/02/19/dismissing-a-modal-view-using-a-storyboard-segue)但是如果我在图像1和图像2之间切换然后返回子菜单,主菜单中的Dismiss Segue实际上将我发送回图像2然后我陷入了子菜单。
我花了好几个小时试图让它工作,我不知道,我只想要一个清除所有ViewControllers并返回主菜单的按钮。
答案 0 :(得分:0)
要清除视图,请在屏幕上放置一个操作项(例如按钮)以关闭。右键单击(或按住Control键单击)按钮到View Controller(First Responder按钮旁边的蓝色部分)。在正常选项下会有一个IBAction dismissView:
(或类似的东西)。这将允许您关闭当前视图并返回上一个视图。
原来我是愚蠢的。
无论如何,它在iOS中仍然是一个非常相似的过程。有一个"退出"第一响应者的权利上的按钮...创建UIViewController的子类(或者如果你已经拥有,则在现有的子类中完成所有这些操作)。在子类中创建一个名为return:
的新IBAction方法ViewController.h
//All of this, if not otherwise noted, is default code upon creating new UIViewController class.
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
//Begin "custom" code
-(IBAction)returned:(UIStoryboardSegue *)segue;
//End "custom" code
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
//Begin "custom" code
-(IBAction)returned:(UIStoryboardSegue *)segue {
}
//End "custom" code
@end
您不需要在方法中放置任何内容。将有一个&#34;放松&#34;如果您现在链接它,退出按钮(return:
)中的方法。宾果!
我确信必须有一个更好的方法来做到这一点,但它运作良好(至少从我能说的。
(我很抱歉告诉你错误的信息!)
编辑:它也可以是任何名字;但是参数必须是UIStoryboardSegue指针。该方法也必须在父类中。 (例如First
- &gt; Second
- &gt; Third
表示Third
退出,secondReturn:
和Second
退出firstReturn:
;其他任何内容,例如Third
返回firstReturn:
将无法在此示例中使用)