UINavigationController后退按钮消失了吗?

时间:2009-05-28 08:43:28

标签: iphone objective-c cocoa-touch

我注意到我的一个视图控制器发生了一些奇怪的事情:后退按钮消失了,但是可以通过点击左上角(即按钮所在的位置)返回到前一个视图控制器。

在我的整个文件中,没有将self.navigationItem.hidesBackButton设置为YES的行;同样,NSLog在viewDidLoad中将self_navigationItem.hidesBackButton的值打印为0。

这在模拟器和真实设备中都会发生。有什么想法吗?

3 个答案:

答案 0 :(得分:23)

亲爱的,亲爱的。在上一个视图控制器的实现中,我不小心将self.title设置为@“”,这导致了这个烦人的错误。

删除此行可解决问题。

答案 1 :(得分:0)

我有一个递归导航控制器,这也发生在我身上,我用这段代码来解决它:

self.navigationItem.leftItemsSupplementBackButton = true

答案 2 :(得分:0)

以防万一有人使用自定义后退按钮遇到此问题并且上述修复程序不起作用,这里有一个类似的问题,我遇到了不同的解决方案。

我有一个自定义的后退按钮,当可以看到箭头时,文本会消失UINavigationController custom back button disappears from NavigationBar

因此,如果有人遇到类似情况,自定义后退按钮上的后退按钮文本消失,这是我的方案和解决方法。

我在自定义 NavigationController 类中自定义了后退按钮,如下所示:

private func customizeBackButton() {
    let backImage = UIImage(named: "BackButton")?.withRenderingMode(.alwaysOriginal)
    navigationBar.backIndicatorImage = backImage
    navigationBar.backIndicatorTransitionMaskImage = backImage
    
    UIBarButtonItem.appearance().setTitleTextAttributes([
      NSAttributedString.Key.foregroundColor: UIColor.panoStoryYellow,
      NSAttributedString.Key.font: UIFont(name: "Montserrat-SemiBold", size: 15)!
    ], for: .normal)
}

这给了我:

UINavigationController custom back button

现在当我点击后退按钮文本时,文本消失了: UINavigationController UINavigationBarButton back button disappears

我确保我遵循了上述所有答案,例如设置标题以确保色调颜色有效等。但是这不起作用。

就我而言,我甚至需要为后退按钮的 highlighted 状态设置属性,如下所示:

UIBarButtonItem.appearance().setTitleTextAttributes([
      NSAttributedString.Key.foregroundColor: UIColor.panoStoryYellow,
      NSAttributedString.Key.font: UIFont(name: "Montserrat-SemiBold", size: 15)!
], for: .highlighted)

此后,后退按钮的文字再也没有消失