稍后在导航控制器的层次结构中抓取视图

Posted

技术标签:

【中文标题】稍后在导航控制器的层次结构中抓取视图【英文标题】:Grabbing a view later in the hierarchy of a navigation controller 【发布时间】:2015-07-19 05:25:37 【问题描述】:

我有一个导航控制器,堆栈中有几个视图控制器。在第二个视图中,我使用presentViewController(...) 展示了一个未嵌入导航控制器的新视图。一旦用户完成了这个单独的视图,我想回到以编程方式呈现单独视图的第二个视图。但是,当我presentViewController(...) 到第二个视图时,它不再嵌入在导航控制器中。

我怎样才能在不必返回根视图控制器的情况下返回第二个视图?谢谢!

【问题讨论】:

第二个视图控制器是否在您的视图被呈现时一直驻留在导航堆栈中,还是在它呈现您的视图控制器后由于某种原因被导航控制器弹出? 我假设它驻留在导航控制器中,因为我不弹出它。我怎样才能再次获取它?或者我是否能够以某种方式从屏幕上移除单个视图控制器? 【参考方案1】:

假设您当前位于第二个视图控制器提供的视图控制器中:

UIViewController *secondViewController = self.presentingViewController;

[self dismissViewControllerAnimated:YES completion:^
    [secondViewController.navigationController popToViewController:secondViewController animated:YES];
];

【讨论】:

正是我需要的!非常感谢。

以上是关于稍后在导航控制器的层次结构中抓取视图的主要内容,如果未能解决你的问题,请参考以下文章

通过 appDelegate openURL 函数呈现 viewController(在导航层次结构中)

这个标签栏控制器应该嵌入在哪里?

Swift ios 重置视图控制器层次结构

我如何处理导航返回按钮视图层次结构?

使用标签栏控制器 -> 导航控制器 -> 视图层次结构 - iOS Swift 从应用程序委托呈现视图

ios-如何在项目中添加导航控制器?