2

我的应用程序中有一个主菜单屏幕,因此当我按下按钮时,我会推送到另一个视图控制器。在其中一个视图控制器中,我使用轻击手势识别器进入模态视图,然后再次关闭模态视图。但是在这个模态视图中,我想要一个按钮 {主菜单} 来关闭视图控制器,然后关闭推送。

我如何关闭 2 层推送和模式视图。使用 push segue,您是关闭 push 视图,还是只是添加另一个 push 以返回。现在我不能关闭模态并按下那个 1 按钮(在模态屏幕上)。

一些建议会很有帮助..

编辑:主菜单视图控制器->(push segue)-> view controllerXXX view controllerXXX->(modal segue)-> pause controller pause controller->(dismiss modal segue)-> view controllerXXX pause controller->(???(将不得不关闭模式和弹出推送)???)-> 主菜单视图控制器

4

1 回答 1

3

您应该使用委托从模态视图控制器向呈现它的父视图控制器进行回调,然后它可以关闭模​​态并将其自身从导航堆栈中弹出。

如果您不熟悉委托模式,请参阅 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];

请参阅 Wenderlich 教程(通读所有内容,有 2 个部分),它将向您展示如何创建协议和调用委托的方法。

不,Wenderlich 的教程中没有提到“委托”这个名称……这是设计模式的名称。

于 2012-09-08T20:01:07.053 回答