导航控制器中不显示后退按钮

Posted

技术标签:

【中文标题】导航控制器中不显示后退按钮【英文标题】:Back button does not show up in navigation controller 【发布时间】:2016-07-19 02:39:55 【问题描述】:

我在一个视图控制器中的表格单元格中添加了一个 show segue 到嵌入在导航控制器中的另一个表格视图。当我单击第一个视图中的单元格时,segue 按预期工作并显示新视图。但是,“返回”按钮(带有原始视图的标题)不会出现在导航栏中。

我搜索了 SO,发现过去曾提出过许多此类问题(针对 Swift 和 Objective-C)。他们中的大多数人建议第一个视图需要一个标题才能工作。我确实有一个头衔。我什至以编程方式添加了一个,以防万一。那没有帮助。建议向segue添加标识符的答案之一;那也没有帮助我。

我还能如何调试这个问题?

【问题讨论】:

可能是因为您将新视图显示为modal,请尝试使用push,以编程方式显示,执行self.navigationController.pushViewController。而且,新视图也不应该嵌入到 navigationController 中,它必须和父视图是同一个 navigationController 你为什么不在这里放一些代码。你呈现第二个 viewController 的方式 我同意@Tj3n,因为你说“提出新观点”,你可能在做模态搜索。如果您以编程方式执行此操作,则使用 Tj3n 提到的 pushViewController,如果不是,请在情节提要中使用,而不是选择当前模态选择显示 我刚刚发布了一些屏幕截图,应该表明我没有以模态方式呈现。我想避免为此编写代码。 【参考方案1】:

问题似乎是您正在推入一个全新的navigationController,将其删除,然后直接进入新视图Detail 本身,它们必须在同一个navigationController 中才能工作

【讨论】:

我以为您将表格(或其他视图)嵌入到导航控制器中以获得自动“返回”按钮功能,不是吗? 你应该只将你的父 VC 嵌入到导航控制器中,而不是你的子视图,如果你这样做了,它会成为一个全新的导航控制器,并且在按下后不会显示返回按钮,在这种情况下,只有带有单元格的 tableView 应该嵌入到导航控制器中,而不是 detail 视图 这正是问题所在。万分感谢。我不知何故假设我需要在导航控制器中嵌入子视图。【参考方案2】:

验证您没有在目标控制器中隐藏后退按钮...

【讨论】:

【参考方案3】:

我在情节提要中有一个left bar button item,删除了按钮,后退按钮出现了。

【讨论】:

以上是关于导航控制器中不显示后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器不显示后退按钮

在没有导航控制器的 UINavigationBar 中强制显示后退按钮

以编程方式创建的后退按钮未显示在导航栏中?

使用导航控制器按下后退按钮后如何防止前一个片段显示?

如何设置导航栏的后退项

xcode 5中的导航栏对象不显示后退按钮并且没有功能