OGeek|极客世界-中国程序员成长平台

标题: ios - 推然后模态然后推? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 16:12
标题: ios - 推然后模态然后推?

我的应用程序中有一个主菜单屏幕,因此当我按下按钮时,我会推送到另一个 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-推荐答案


您应该使用委托(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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4