我的应用程序中有一个主菜单屏幕,因此当我按下按钮时,我会推送到另一个 View Controller 。在其中一个 View Controller 中,我使用轻击手势识别器进入模态视图,然后再次关闭模态视图。但在这个模态视图中,我想要一个按钮 {主菜单} 来关闭 View Controller ,然后关闭推送。
如何消除 2 层推送和模态视图。使用 push segue,您是关闭 push View ,还是只是添加另一个 push 以返回。现在我不能关闭模态并按下那个 1 按钮(在模态屏幕上)。
一些建议会有所帮助..
编辑:
主菜单 View Controller ->(push segue)-> View Controller XXX
查看 Controller XXX ->(模态转场)-> 暂停 Controller
暂停 Controller ->(关闭模式segue)->查看 Controller XXX
暂停 Controller ->(???(将不得不关闭模式和弹出推送)???)->主菜单 View Controller
Best Answer-推荐答案 strong>
您应该使用委托(delegate)从模态视图 Controller 向呈现它的父 View Controller 进行回调,然后它可以关闭模态并将其自身从导航堆栈中弹出。
如果您不熟悉委托(delegate)模式,请参阅 Apple 的介绍:
http://developer.apple.com/library/ios/#Documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
您也可以从 Ray Wenderlich 的网站上尝试本教程,用于开始 Storyboard(其中也有使用委托(delegate)的示例):
http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
编辑:
以下是您从呈现 View Controller 中关闭模态视图 Controller 的方法(也就是说,self 是呈现模态的 View Controller ):
[self dismissModalViewControllerAnimated:YES];
以下是从导航堆栈弹出 View Controller 的方法(其中 self 是您要弹出的 View Controller ):
[self.navigationController popViewControllerAnimated:YES];
查看 Wenderlich 教程(通读一遍,有 2 个部分),它将向您展示如何创建协议(protocol)和调用委托(delegate)的方法。
不,Wenderlich 的教程中没有提到“委托(delegate)”这个名称……这是设计模式的名称。
关于ios - 推然后模态然后推?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/12333914/
|