我的应用程序中有一个主菜单屏幕,所以当我按下一个按钮时,我会推送到另一个视图控制器。在这些视图控制器之一中,我使用轻敲手势识别器来进行模态视图,并再次关闭模态视图。但是在这个模态视图中,我想要一个按钮{主菜单}来关闭视图控制器,然后解除推送。
如何解散2层推模和模态视图。使用push segue你会忽略推送视图,或者只是添加另一个推送返回。现在我无法解除模态并按下那个1按钮(那就是模态屏幕上)。
一些建议会有所帮助..
编辑: 主菜单视图控制器 - >(推送segue) - >查看controllerXXX view controllerXXX - >(modal segue) - >暂停控制器 暂停控制器 - >(忽略模态segue) - >查看controllerXXX 暂停控制器 - >(???(将不得不解除模态和弹出推送)???) - >主菜单视图控制器
答案 0 :(得分:3)
您应该使用委托从模态视图控制器回显到呈现它的父视图控制器,然后可以关闭模态并将其自身弹出导航堆栈。
如果您不熟悉委托模式,请参阅Apple对其的介绍:
你也可以在Ray Wenderlich的网站上试一下这个教程,该故事板上有一个使用委托的例子:
http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
编辑:
以下是从呈现视图控制器中解除模态视图控制器的方法(也就是说,self是呈现模式的视图控制器):
[self dismissModalViewControllerAnimated:YES];
以下是如何从导航堆栈中弹出视图控制器(其中self是您要弹出的视图控制器):
[self.navigationController popViewControllerAnimated:YES];
参见Wenderlich教程(详细介绍,有2个部分),它将向您展示如何创建协议并调用委托方法。
不,在Wenderlich的教程中,“委托”这个名称没有提到......这就是设计模式的名称。