ViewController 到 NavigationController 并返回

Posted

技术标签:

【中文标题】ViewController 到 NavigationController 并返回【英文标题】:ViewController to NavigationController and back 【发布时间】:2012-12-10 18:55:32 【问题描述】:

我有一个问题,我不知道如何解决。目前我有主要的UIViewController 和一些按钮。这是使用 app 创建的初始视图。在它上面,一个按钮调用 Storyboards segue 与 ViewController 上的样式 Modal 是UINavigationController 的一部分。之后,通过 segues 在UINavigationController 中处理少数其他视图控制器并通过navigationController:popViewControllerAnimated 返回。我不知道如何从UINavigationController 回到第一个UIViewController。我试过了,当我在navigationctrl上第一个时,

[self removeFromParentViewController];

然而,这只会删除视图,但似乎UINavigationController 以某种方式保持活力,因为结果是黑屏。创建未连接的 segue 并从代码中调用它是可能的,但我不确定这是否是正确的方法。那会让导航控制器活着吗?

【问题讨论】:

【参考方案1】:

您是否有任何理由先使用UIViewController,然后使用UINavigationController

为什么不改变它,让UINavigationController 成为初始视图控制器,然后从那里驱动一切。

如果您希望第一个视图没有导航栏,那么您可以轻松隐藏它。

这样你就可以通过弹出和推入UINavigationController来在所有视图中移动。

【讨论】:

是的,你是对的。隐藏栏应该是正确的方法。我试图向 IB 隐藏它,但由于某种原因它仍然会弹出。我会尝试从代码中做到这一点,但无论如何我要找出如何删除 navcontroller :) 您也可以将其从 IB 中删除。在“Simulated Metrics - Top Bar”下的视图控制器检查器中,选择“None”。不过你还没有回答我的问题。为什么要让自己变得更加困难?只需将 NavigationController 粘贴为 Initial View Controller,您就不必担心删除它。 我同意你的看法。我将使用 NavigationController。但我想了解如何从窗口中删除导航控制器。也许在其他时候我需要... 啊,对不起,之前误读了它:D 好问题。我想你必须从它下面的视图控制器中删除它(即拥有导航控制器的那个)。所以你需要某种方式(委托方法或其他东西)来回调它,告诉它从自身中删除 nag 控制器。 顺便说一句,我已将顶部栏设置为无,并且在 IB 导航栏是隐藏的,但是当应用程序启动时它会弹出。

以上是关于ViewController 到 NavigationController 并返回的主要内容,如果未能解决你的问题,请参考以下文章

故事板下添加的导航项

css PureCSS菜单进入WordPress(http://corpocrat.com/2015/08/28/how-to-integrate-purecss-navigation-menu-in

将图像从 ViewController 传递到 ViewController

在不同的 ViewController 中切换到新的 ViewController?

从 HTML 文件链接到视图

如何将数据从模态 ViewController 传输到父 ViewController?