我有一个主菜单屏幕在我的应用程序,所以当我点击一个按钮,我按下另一个视图控制器。在其中一个视图控制器中,我使用一个点击手势识别器来识别一个模态视图,然后再一次取消模态视图。但是在这个模态视图中,我想要一个按钮{主菜单}来关闭视图控制器,然后取消一个按钮。
怎样才能排除2层推送和模态视图。使用push segue,您是不接受push视图,还是简单地添加另一个push以返回。现在,我不能取消模态和按1按钮(那是在模态屏幕上)。
一些建议会有帮助..。
编辑:主菜单视图控制器->(推送)、->视图、controllerXXX视图、controllerXXX视图、controllerXXX ->(模态视图)、->暂停控制器、暂停控制器->(关闭模态)、->视图、controllerXXX暂停控制器->(??(将不得不取消模态和弹出推送)??->主菜单视图控制器)。
发布于 2012-09-08 20:01:07
您应该使用委托从模态视图控制器对呈现它的父视图控制器进行回调,然后该父视图控制器可以关闭该模型并将其弹出导航堆栈。
如果您不熟悉委托模式,请参阅Apple的介绍:
http://developer.apple.com/library/ios/#Documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
您还可以从Ray Wenderlich的网站开始使用故事板(其中有一个使用委托的示例),您也可以尝试本教程:
http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
编辑:
这里是如何从呈现视图控制器(即self是呈现该模型的视图控制器)中剔除一个模态视图控制器的方法:
[self dismissModalViewControllerAnimated:YES];
这里是如何将视图控制器从导航堆栈中弹出(其中self是要弹出的视图控制器):
[self.navigationController popViewControllerAnimated:YES];
请参阅温德利希教程(所有这些都有两部分),它将向您展示如何创建协议并调用委托的方法。
不,在温德利希的教程里没有提到“代表团”这个名字.这是设计模式的名称。
https://stackoverflow.com/questions/12333914
复制相似问题