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

Posted

技术标签:

【中文标题】导航控制器不显示后退按钮【英文标题】:Navigation controller not displaying back button 【发布时间】:2015-12-08 15:17:18 【问题描述】:

我有一个嵌入在导航控制器中的配置文件。当我创建一个转到另一个视图控制器(也嵌入在导航控制器中)的 segue 时,我得到下面的屏幕。我曾经看到后退按钮,在这种情况下,会说“

谁能帮我解决这个问题?我似乎找不到任何帮助!

这是我为 segue 编写的代码,用于从配置文件视图控制器转到关注者视图控制器,这是带有空白导航栏的控制器。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if segue.identifier == "toFollowers" 
        var profileVC: FollowersViewController = segue.destinationViewController as! FollowersViewController
        profileVC.followers = true

    


【问题讨论】:

你能把你的代码贴在这里吗? 检查视图控制器是否有title。这是子视图控制器可见时后退按钮上显示的文本。如果该文本是nil,则没有后退按钮。 Here is the same question 【参考方案1】:

您是在设置hidesBackButton = YES 还是backBarButtonItem = nil profileVC,还是有不同的leftBarButtonItem 定义?

您是否通过编程方式删除了back,请删除这些代码。

已编辑

以下代码返回有多少控制器进入UINavigationController,请检查它是否大于0

var stack = self.navigationController!.viewControllers as Array

希望这对您有很大帮助。

【讨论】:

没有添加任何代码来删除或修改后退按钮。 我认为您的导航控制器无法推送下一个控制器,这就是为什么不显示。【参考方案2】:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if segue.identifier == "toFollowers" 
//Try getting the navigation controller first as 
var navVc = segue.destination as UINavigationViewContrller
//than
var profileVc = navVc.viewControllers.first as! FollowersViewController
//        var profileVC: FollowersViewController = //segue.destinationViewController as! FollowersViewController
 //       profileVC.followers = true

    


【讨论】:

虽然“仅代码”的答案可能会完美解决问题中所述的问题,但为代码提供一些上下文通常是一件好事(OP 做错了什么,您的代码如何解决问题,...)

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

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

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

如何设置导航栏的后退项

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

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

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