present Modal View Controller:如何与父级交互

Posted

技术标签:

【中文标题】present Modal View Controller:如何与父级交互【英文标题】:presentModalViewController: how to interact with parent 【发布时间】:2011-01-25 16:10:34 【问题描述】:

显示模态 ViewController 可以正常工作:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView];
[self.navigationController presentModalViewController:navController animated:YES];
[navController release];    

在我的模式视图中,我有一个导航按钮可以切换回主菜单。通常会调用[self.navigationController popToViewController:delegate.viewMainmenu animated:YES];,但这在模态视图中是不可能的。我如何与“父母”互动以称呼他为popToViewController

非常感谢!

【问题讨论】:

***.com/a/8744062/1092219 【参考方案1】:

在模态 vc 中使用属性 parentViewController 并调用 [self.parentViewControllerdismissModalViewControllerAnimated: YES];

【讨论】:

谢谢!使用dismissModalViewController 我可以关闭模​​态视图,但是如何导航到我的主菜单? 好吧,如果您的主菜单是根 vc,那么只需执行 popToRootViewController。另一种选择:将主菜单设为单例(因为每个应用程序通常只有一个),访问类似于 [MainMenu sharedMenu]。然后你可以像 [self.navigationController popToViewController: [MainMenu sharedMenu]] "self.navigationController popToViewController" 在模态对话框中不起作用,它只在父级中起作用。我试试 当然不行 :) 那是因为你的模态视图控制器没有推入导航堆栈。 1.解除模态。 2. 在你的父母中调用 pop 或者试试 self.parentViewController.navigationController popToViewController"【参考方案2】:

如果您询问如何关闭模态视图控制器,您会希望模态视图本身调用:

[self dismissModalViewControllerAnimated:YES];

【讨论】:

谢谢!是的,dismissModalViewController 会关闭模态视图,但我想弹出一些视图以转到我的主菜单。

以上是关于present Modal View Controller:如何与父级交互的主要内容,如果未能解决你的问题,请参考以下文章

iOS Storyboard Presenting Segues "relationship, embed, push, modal, custom" 类型

Android MVP 架构一 View与Presenter

SwiftUI:“some view”类型的值没有成员“presentation”

在 Modal 之后推送 UIView

从 Popover View 内部呈现 Modal View Controller

Laravel 在 modal-view.blade 中将整数值显示为字符串