popToRootViewController 在导航栏上带来最后一个视图

Posted

技术标签:

【中文标题】popToRootViewController 在导航栏上带来最后一个视图【英文标题】:popToRootViewController brings last view over navigation bar 【发布时间】:2016-02-09 07:50:45 【问题描述】:

我遇到了一个奇怪的问题,当我使用

在导航层次结构中使用返回功能时
 [self.navigationController popViewControllerAnimated:YES]; 

它工作正常,导航流畅,但我使用 popToRootViewController 以便从同一个视图控制器执行“返回首页”功能,它在导航完成后将该视图控制器的标题带到导航栏虽然我在根视图控制器我使用半透明导航栏作为导航栏我遵循的结构是我的 HomeViewController 是根视图控制器,而其余所有视图控制器都被推送到该根视图控制器。但是我在 SideMenuViewController 中使用此代码作为子视图控制器添加到我的导航层次结构中。 我正在使用以下线路返回家中。

[self.navigationController popToRootViewControllerAnimated:YES];

希望我的问题现在很清楚。 任何建议将不胜感激。在此先感谢。下图解释了使用 popToRootViewController 后的样子。

【问题讨论】:

好友需要一些代码和更多解释。很可能您的视图控制器堆栈就是这样。 请建议现在我已经改进了一点。 只需做两件事 1. 检查您是否在故事板中使用导航控制器? 2. 移除 SideMenuViewController 看看结果如何? 【参考方案1】:

我没有完全理解你的问题。但是从某种意义上说popToRootViewController,它直接进入初始视图控制器(应用程序启动时的第一个视图)。移动 4 到 5 个视图控制器后,如果您编写 popToRootViewController,您将直接进入第一个视图。

popToview 意味着你只是回到你所看到的最后一个视图控制器。

【讨论】:

我明白这一点,但是当我回到根视图控制器时,它会将最后一个弹出的视图控制器标题带到我的导航栏。我已经改进了这个问题,请现在看看。

以上是关于popToRootViewController 在导航栏上带来最后一个视图的主要内容,如果未能解决你的问题,请参考以下文章

在 popToRootViewController 之后未调用 viewWillAppear 方法

从另一个选项卡调用 popToRootViewController

当 tableView 仍在滚动时 popToRootViewController 崩溃

popToRootViewController 前进动画

popToRootViewController 在导航栏上带来最后一个视图

单击按钮时的poptorootviewcontroller