导航控制器中没有返回按钮显示

14
我已经在一个视图控制器中的表格单元格中添加了一个展示segue,它链接到一个嵌入导航控制器的另一个表格视图。当我在第一个视图中点击单元格时,segue按预期工作并弹出新视图。然而,“返回”按钮(标题为原始视图)不会出现在导航栏中。
我搜索了SO并找到了许多类似的问题(包括Swift和Objective-C)。其中大部分建议第一个视图需要一个标题才能使其工作。我确实有一个标题。我甚至动态地添加了一个标题,以防万一。但这并没有帮助我。其中一个答案建议给segue添加标识符;但对我来说也没有帮助。
还有什么其他方法可以调试此问题?

xcode windowmain windowdetail window


3
可能是因为你将新视图呈现为“modal”,请改用“push”,使用编程方式呈现时,执行self.navigationController.pushViewController。而且,新视图也不应嵌入navigationController中,它必须与父视图控制器相同的navigationController - Tj3n
为什么不在这里放一些代码呢?你展示第二个视图控制器的方式。 - ronan
我同意@Tj3n的观点,因为你说“带出新视图”,所以你可能正在执行模态转换。如果你是通过编程实现的话,就像Tj3n提到的那样使用pushViewController,如果不是,那么在你的故事板中,选择show而不是present modally。 - Happiehappie
我刚刚发布了一些截图,应该能够证明我没有以模态方式呈现。我想避免为此编写代码。 - Vijay
4个回答

19

看起来问题是你正在推入一个全新的navigationController,移除它,直接使转场进入新的Detail视图本身,它们必须在同一个navigationController中才能工作


3
我想你需要将表格(或其他视图)嵌入到导航控制器中,以获取自动“返回”按钮功能,对吗? - Vijay
1
如果您将父视图控制器嵌入导航控制器中,而不是将子视图嵌入其中,那么它将成为一个全新的导航控制器,并且在推送后不会显示返回按钮。在这种情况下,只有包含单元格的tableView应该嵌入到navController中,而不是“详细”视图。 - Tj3n
这正是问题所在。非常感谢。我不知怎么就以为需要将子视图嵌入导航控制器中。 - Vijay

0

请确认您是否在目标控制器中隐藏了后退按钮...


0

我在Storyboard中有一个左侧按钮项,当我删除了这个按钮时,返回按钮出现了。


0

可能是因为您将新视图呈现为模态的原因,请尝试使用推送。


目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接